Skip to content

Releases: msqd/harp

Version 0.8.0a2 (2024-11-16)

16 Nov 12:09
Compare
Choose a tag to compare
Pre-release

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 or harp 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)

16 Nov 11:44
Compare
Choose a tag to compare
Pre-release

Full Changelog: 0.7.7...0.8.0a1

Version 0.7.7 (2024-11-16)

16 Nov 11:11
Compare
Choose a tag to compare

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

Full Changelog: 0.7.6...0.7.7

Version 0.7.6 (2024-11-03)

03 Nov 12:24
Compare
Choose a tag to compare

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)

03 Nov 09:01
Compare
Choose a tag to compare

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)

30 Oct 08:28
Compare
Choose a tag to compare

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

24 Oct 16:02
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.7.1...0.7.2

Version 0.7.1

17 Sep 11:28
Compare
Choose a tag to compare

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 new harp.config.Configurable base class is now used for all
    settings classes, and a new harp.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 to EVENT_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

13 Sep 07:24
Compare
Choose a tag to compare
Version 0.7.0a2 Pre-release
Pre-release

Version 0.7.0a1

06 Sep 16:18
Compare
Choose a tag to compare
Version 0.7.0a1 Pre-release
Pre-release

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 new harp.config.Configurable base class is now used for all
    settings classes, and a new harp.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 to EVENT_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

  • HARP Proxy 0.7.0a1 on PyPI