Skip to content

Releases: MobileTeleSystems/horizon

1.1.1 (2025-01-28)

28 Jan 09:30
186150d
Compare
Choose a tag to compare

Improvements

  • Add compatibility with Python 3.13 (94)
  • Replace outdated python-jose dependency with authlib.jose, to fix security issues. (97)

Note: preliminary release 1.1.0 was yanked from PyPI because it has wrong horizon.__version__ value.
The source code of 1.1.1 and dependencies are just the same as 1.1.0.

1.0.2 (2024-11-21)

21 Nov 13:10
5121d24
Compare
Choose a tag to compare

Bug fixes

  • Previously client after receiving 4xx responses from the server, raised requests.exceptions.HTTPError like:

    >>> client.update_namespace_permissions(namespace_id=234, changes=to_update)
    Traceback (most recent call last):
      File "horizon/horizon/client/base.py", line 135, in _handle_response
          response.raise_for_status()
      File "horizon/.venv/lib/python3.12/site-packages/requests/models.py", line 1021, in raise_for_status
          raise HTTPError(http_error_msg, response=self)
    requests.exceptions.HTTPError: 404 Client Error: Not Found for url: http://localhost:8000/v1/namespaces/234/permissions

    Now it wraps all these exceptions with horizon.commons.exceptions classes, like:

    >>> client.update_namespace_permissions(namespace_id=234, changes=to_update)
    Traceback (most recent call last):
      File "<stdin>", line 1, in <module>
      File "horizon/horizon/client/sync.py", line 914, in update_namespace_permissions
        return self._request(  # type: ignore[return-value]
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "horizon/horizon/client/sync.py", line 1031, in _request
        return self._handle_response(response, response_class)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      File "horizon/horizon/client/base.py", line 170, in _handle_response
        raise get_exception() from http_exception
    horizon.commons.exceptions.entity.EntityNotFoundError: Namespace with id=234 not found

    horizon.commons.exceptions exception types were documented long time ago, so this is not a breaking change, but a bug fix.

1.0.1 (2024-06-27)

27 Jun 14:28
e4f9fcd
Compare
Choose a tag to compare

Dependencies

  • Bump minimal urllib3 version to 1.26.0, to avoid exceptions like:
ValidationError: 1 validation error for HorizonClientSync__root__
    __init__() got an unexpected keyword argument 'allowed_methods' (type=type_error)

1.0.0 (2024-06-10)

10 Jun 08:50
888a4ec
Compare
Choose a tag to compare

First production-ready release!

Improvements

  • Update dependencies

0.2.1 (2024-05-29)

29 May 08:39
12e4537
Compare
Choose a tag to compare

Improvements

  • Fix LDAP connection pool configuration example.
  • Update uvicorn to 0.30.0, including new multiprocessing workers manager.
  • Update dependencies.

0.2.0 (2024-05-15)

15 May 08:55
c4a529a
Compare
Choose a tag to compare

Breaking Changes

  • Rename /v1/namespace/:id/permissions endpoint to /v1/namespaces/:id/permissions. (#61)

Features

  • Allow using Horizon with multiple uvicorn workers (#60):
    • Add pid to log formatters
    • Add PROMETHEUS_MULTIPROC_DIR to docker-compose.yml example

Bug Fixes

  • Use connection timeout while creating LDAP connections in the pool. (#58)
  • Fix response schema for invalid JSON input.

0.1.3 (2024-05-02)

02 May 10:58
9dfa8bf
Compare
Choose a tag to compare

Improvements

  • Properly handle SIGTERM signals in Docker image entrypoint.
  • Update dependencies

0.1.2 (2024-04-02)

02 Apr 09:28
8367012
Compare
Choose a tag to compare

Features

  • Add new environment variable HORIZON__ENTRYPOINT__ADMIN_USERS to Docker image entrypoint. Here you can pass of usernames which should be automatically promoted to SUPERADMIN role during backend startup. (#45)

Improvements

  • Improve logging in manage_admins script. (#46)
  • Fix Pydantic v2 model warnings while starting backend. (#47)

0.1.1 (2024-03-27)

27 Mar 13:38
2591092
Compare
Choose a tag to compare

Breaking Changes

Users now required to explicitly have a role assigned within a namespace to manipulate HWMs as they could before. These changes enforce stricter access control and better management of user permissions within the system.

  • Add role model to Horizon, documentation available at role-permissions. (#27, #31)
  • Restrict deletion of Namespace if there are any hwms related to it. (#25)

Features

  • Add Namespace History. Now it is possible to view paginated history of actions for specific namespace. (#24)

  • Add owner_id field to Namespace model to keep track of the owner of the namespace. (#26)

  • Add support for managing SUPERADMIN roles. (#36)

  • Permissions Management:

    • Add new API endpoint PATCH /namespace/:id/permissions for updating the permissions of users within a namespace.
    • Add new API endpoint GET /namespace/:id/permissions for fetching the permissions of users within a specific namespace.
    • Extend the Python client library with methods get_namespace_permissions and update_namespace_permissions to interact with the new API endpoints. (#29)
  • High Water Marks (HWMs) Management:

    • Add new API endpoint DELETE /hwm/ for bulk deletion of High Water Marks (HWMs) by namespace_id and a list of hwm_ids.
    • Extend the Python client library with the method bulk_delete_hwm to interact with the new bulk delete HWM API endpoint. (#37)
    • Add new API endpoint POST /hwm/copy endpoint for copying HWMs between namespaces, with optional history copying.
    • Extend the Python client library with the method copy_hwms to support the new HWM copy functionality. (#42)

Improvements

  • Fix documentation examples. Make documentation more user-friendly. (#20)

0.0.13 (2024-02-13)

13 Feb 14:17
d1c5cce
Compare
Choose a tag to compare

Features

  • Horizon is open-source now.