Releases: msqd/harp
Releases · msqd/harp
Version 0.8.0a2 (2024-11-16)
Added
- Proxy: it is now possible to add not exposed endpoints in the proxy configuration.
- Proxy: Custom controller types with custom settings can be added to the proxy configuration as services definitions.
- Monitoring: Prometheus integration.
Changed
- API: the [EVENT_READY]{.title-ref} and [EVENT_SHUTDOWN]{.title-ref} core events now takes (and provides) an [ASGIApplication]{.title-ref} insteas of an [ASGIKernel]{.title-ref} to avoid having a misleading interface when multiple ASGI middlewares are applied. The same change has been propagated to
System
/SystemBuilder
. - Proxy: Endpoints can now include full paths beyond just base paths. For example, URLs like http://example.com/api/v1/endpoint1/ are now supported in addition to simpler base URLs like http://example.com/. (#35, @ArthurD1)
- Rules: The rules application is now loaded by default when using the
harp start
orharp server
command. (#594, @ArthurD1) - Storage: The Engine is now defined as a service and instantiated using dependency injection. (#72, @ArthurD1)
Fixed
- Cache: on retrieval/decoding failure, consider no cache is available.
- DX: Add the ability to use --set x=y or --set x y (both equivalent) to all commands (@masterivanic, #590)
- UI: Correctly display header values containing a semicolon character (#577, @ArthurD1)
- UI: Fixed the topology UI where changing the state of a remote would cause the page to crash (#578, @ArthurD1).
- UI: On transactions page, tpdex filter now includes both sides of the selected range (#391, @ArthurD1)
Updated
- chore(deps): bump http-router from 4.1.2 to 5.0.8
Full Changelog: 0.7.7...0.8.0a2
Version 0.8.0a1 (2024-11-16)
Full Changelog: 0.7.7...0.8.0a1
Version 0.7.7 (2024-11-16)
Fixed
- DX: Add the ability to use --set x=y or --set x y (both equivalent) to all commands (@masterivanic, #590)
- UI: Correctly display header values containing a semicolon character (#577, @ArthurD1)
- UI: On transactions page, tpdex filter now includes both sides of the selected range (#391, @ArthurD1)
Changed
- DX: Improve [harp create project]{.title-ref} prompts (@Lenormju)
Updated
- bump aiohttp from 3.10.10 to 3.11.2
- bump alembic from 1.13.3 to 1.14.0
- bump asgi-tools from 1.0.10 to 1.1.0
- bump hishel from 0.0.33 to 0.1.1
- bump http-router from 4.1.2 to 5.0.8
- bump orjson from 3.10.10 to 3.10.11
- bump rich from 13.9.3 to 13.9.4
- bump rich-click from 1.8.3 to 1.8.4
- bump ruff from 0.7.1 to 0.7.4
- bump sentry-sdk from 2.17.0 to 2.18.0
New Contributors
- @codefactor-io made their first contribution in #614
- @masterivanic made their first contribution in #590
Full Changelog: 0.7.6...0.7.7
Version 0.7.6 (2024-11-03)
Fixed
- Misc: ignore test found in cookiecutter template, as it is a template.
Full Changelog: 0.7.5...0.7.6
Version 0.7.5 (2024-11-03)
Added
- DX: adds (very) basic integration test in project template (Mathias Laurin)
- UX: ability to copy-paste content from user interface (Arthur Degonde)
Changed
- DX: Loosen the cookiecutter template version constraint for harp in template (#589, Lenormju)
Updated
- bump pytest-benchmark from 5.0.1 to 5.1.0
New Contributors
Full Changelog: 0.7.4...0.7.5
Version 0.7.4 (2024-10-30)
Added
- DX: Helm chart for Kubernetes is now published and a minimal
documentation is available.
Changed
- Proxy: inbound message is now recorded "as-is" in the message
history, without any transformation. This means that host and user
agent headers that will be sent to the remote server are not
recorded anymore, to avoid confusion between filtered and unfiltered
content.
Updated
- bump pre-commit from 3.8.0 to 4.0.1
- bump pytest-benchmark from 4.0.0 to 5.0.1
- bump pytest-cov from 5.0.0 to 6.0.0
- bump slack-sdk from 3.33.2 to 3.33.3
Full Changelog: 0.7.3...0.7.4
0.7.2
What's Changed
- chore(deps): bump pydantic from 2.9.1 to 2.9.2 by @dependabot in #520
- chore(deps-dev): bump sphinx-autobuild from 2024.9.3 to 2024.9.17 by @dependabot in #519
- chore(deps-dev): bump ruff from 0.6.5 to 0.7.0 by @dependabot in #534
- chore(deps): bump anyio from 4.4.0 to 4.6.2.post1 by @dependabot in #533
- chore(deps-dev): bump sphinx-autobuild from 2024.9.17 to 2024.10.3 by @dependabot in #529
- chore(deps): bump slack-sdk from 3.33.0 to 3.33.1 by @dependabot in #522
- chore(deps): bump hishel from 0.0.30 to 0.0.33 by @dependabot in #531
- docs: fix contributor docs by @ArthurD1 in #536
- chore(deps): bump sentry-sdk from 2.14.0 to 2.17.0 by @dependabot in #541
- chore(deps): bump orjson from 3.10.7 to 3.10.10 by @dependabot in #540
- chore(deps): bump rich from 13.8.1 to 13.9.3 by @dependabot in #539
- chore(deps): bump aiohttp from 3.10.5 to 3.10.10 by @dependabot in #538
- chore(deps-dev): bump black from 24.8.0 to 24.10.0 by @dependabot in #537
Full Changelog: 0.7.1...0.7.2
Version 0.7.1
Added
- Core: Stream attribute in both HttpRequest and HttpResponse to allow handling streaming objects and to get closer to
httpx interfaces. - Core/Http: Stream attribute in both HttpRequest and HttpResponse to allow handling streaming objects and to get
closer to httpx interfaces. - Core/Services: Services definitions are now using a declarative configuration format, that can be loaded by
applications. A sphinx extension was added to automatically document service definitions from applications. - Core/Services: Ability to include another services.yml file, either by absolute path (using
"!include /path/to/other.yml") or from a python package path, using "!include services.yml from my.package" syntax. - Notifications: Implements a simple way to send notifications to a slack or a google chat webhook to catch errors.
- Proxy: Added support for multiple remote urls for a given endpoint.
- Proxy: Added support for default/fallback pools in remote configuration for resilience.
- Proxy: Added a simple but functional circuit breaker implementation.
- Proxy: Add probe implementation in background.
- Proxy: Add liveness configuration support to proxy (in both remote endpoints and remote) to be able to select a
liveness check algorithm. For now, supported algorithms are "ignore" (do nothing), "naive" (old behaviour with simple
thresholds), "leaky" for a leaking bucket, and "inherit" (use parent algorithm). The default is "inherit", and if all
settings in config chain are set to "inherit", the top-level default is "naive". - Frontend: Generate typescript types from models, using the intermediary json schema generation provided by pydantic.
- Storage: Added a new db:merge command to generate merge revisions from alembic.
Changed
- Config: the settings are now implemented using pydantic, with more strictness so that settings only contains settings
and state-related things are moved to wrappers. The newharp.config.Configurable
base class is now used for all
settings classes, and a newharp.config.Stateful
allows to define settings wrappers for stateful objects. - Config: Redis configuration is now separated from blob storage, as it may be used by much more than just blobs.
- Core:
EVENT_CONTROLLER_VIEW
event has been renamed toEVENT_CORE_VIEW
for consistency with other event names. - Core/Http: Removed WrappedHttpRequest, inner HttpRequests can now be accessed directly.
- Core/Http: HttpRequest can now be instanciated without an explicit implementation. If no implementation is provided,
then the kwargs data is passed to a stub implementation, allowing a simpler way to create requests (in tests, for
example). - DX: adds a
harp examples list
command to list available examples - DX/Helm: adds the ability to override environment in helm chart's values
Fixed
- Storage: added missing index on messages.transaction_id to speed up dashboard search queries.
- Erroneous frontend compiled assets path change reverted so that docker builds are not broken.
Deleted
- Config: old settings classes have been removed (Definition, DisableableBaseSettings, DisabledSettings, Lazy, Settings)
along with related helper (settings_dataclass).
Links
Full Changelog: 0.6...0.7.1
PyPI: HARP Proxy 0.7.1 on PyPI
Docker Hub: Docker image
Notes
The 0.7.0 release has been deleted shortly after being released, as a docker image configruration issue was found during the initial tests, causing the image to not start. The 0.7.1 version is the real first 0.7 version.
Version 0.7.0a2
Full Changelog: 0.7.0a1...0.7.0a2
Version 0.7.0a1
Added
- Core: Stream attribute in both HttpRequest and HttpResponse to allow handling streaming objects and to get closer to
httpx interfaces. - Core/Http: Stream attribute in both HttpRequest and HttpResponse to allow handling streaming objects and to get
closer to httpx interfaces. - Core/Services: Services definitions are now using a declarative configuration format, that can be loaded by
applications. A sphinx extension was added to automatically document service definitions from applications. - Notifications: Implements a simple way to send notifications to a slack or a google chat webhook to catch errors.
- Proxy: Added support for multiple remote urls for a given endpoint.
- Proxy: Added support for default/fallback pools in remote configuration for resilience.
- Proxy: Added a simple but functional circuit breaker implementation.
- Proxy: Add probe implementation in background.
- Proxy: Add liveness configuration support to proxy (in both remote endpoints and remote) to be able to select a
liveness check algorithm. For now, supported algorithms are "ignore" (do nothing), "naive" (old behaviour with simple
thresholds), "leaky" for a leaking bucket, and "inherit" (use parent algorithm). The default is "inherit", and if all
settings in config chain are set to "inherit", the top-level default is "naive". - Frontend: Generate typescript types from models, using the intermediary json schema generation provided by pydantic.
- Storage: Added a new db:merge command to generate merge revisions from alembic.
Changed
- Config: the settings are now implemented using pydantic, with more strictness so that settings only contains settings
and state-related things are moved to wrappers. The newharp.config.Configurable
base class is now used for all
settings classes, and a newharp.config.Stateful
allows to define settings wrappers for stateful objects. - Config: Redis configuration is now separated from blob storage, as it may be used by much more than just blobs.
- Core:
EVENT_CONTROLLER_VIEW
event has been renamed toEVENT_CORE_VIEW
for consistency with other event names. - Core/Http: Removed WrappedHttpRequest, inner HttpRequests can now be accessed directly.
- Core/Http: HttpRequest can now be instanciated without an explicit implementation. If no implementation is provided,
then the kwargs data is passed to a stub implementation, allowing a simpler way to create requests (in tests, for
example). - DX: adds a
harp examples list
command to list available examples - DX/Helm: adds the ability to override environment in helm chart's values
Updated
- chore(deps): bump rich from 13.7.1 to 13.8.0
- chore(deps-dev): bump syrupy from 4.6.1 to 4.7.1
- chore(deps-dev): bump ruff from 0.6.1 to 0.6.2
- chore(deps-dev): bump pytest-asyncio from 0.21.2 to 0.24.0
Fixed
- Storage: added missing index on messages.transaction_id to speed up dashboard search queries.
Deleted
-
Config: old settings classes have been removed (Definition, DisableableBaseSettings, DisabledSettings, Lazy, Settings)
along with related helper (settings_dataclass). -
Full Changelog: 0.6.1...0.7.0a1