Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 67 additions & 4 deletions CHANGELOG.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@
Change history
==============

3.5.0 (TBD)
-----------
3.5.0 (2025-12-01)
------------------

.. warning::

Changes to format of ``setup_configuration`` data for OpenID connect

In this release, ``mozilla-django-oidc-db`` has been updated to version 1.1.0, which requires the new data format.
In this release, ``mozilla-django-oidc-db`` has been updated to version 1.1.1, which requires the new data format.
The old format is deprecated and will be removed in future releases.

The new configuration must be used, as it splits the previous solo model configuration into ``OIDCProvider`` and ``OIDCClient``
Expand All @@ -33,6 +33,62 @@ Change history
For detailed configuration, see :ref:`Admin OIDC Configuration Step <ref_step_mozilla_django_oidc_db.setup_configuration.steps.AdminOIDCConfigurationStep>`.
Make sure to check which fields are marked as ``DEPRECATED`` and replace them with the fields that are mentioned as replacements.

**New features**

* [:open-api-framework:`152`] Add OpenTelemetry (``OTel``) for collecting and exporting application metrics.

* Metrics now exposed include:

- HTTP request durations.
- Number of active requests.
- Number of users, logins, logouts, failed logins, and account lockouts.
- **CRUD** operations for the ``/objects`` endpoint.

* All metrics are exported using the **OpenTelemetry standard**, enabling seamless integration with existing monitoring and visualization platforms.

.. note::

The OpenTelemetry SDK is **enabled by default**.

If you do not have an endpoint to send system telemetry to, update your deployment to **disable it** by setting the environment variable:

.. code-block:: bash

OTEL_SDK_DISABLED=true

If this is not done, warnings will be emitted to the container logs. The application will continue to function normally.

All available metrics and details can be found in the :ref:`Observability documentation <installation_observability_index>`.

* [:open-api-framework:`188`] Add CSV option to ``dump_data.sh`` script (see :ref:`scripts` for more information)
* [:objects-api:`621`] Improve admin search bar for JSON data using key-value patterns, see :ref:`admin_objects_search`

**Bugfixes**

* [:commonground-api-common:`134`] Fix exceptions in API endpoints not forwarded to Sentry when ``DEBUG=False``

**Maintenance**

* [:open-api-framework:`191`] ``nodejs`` to v24
* [:open-api-workflows:`31`] ``codeql`` to v4
* [:open-api-framework:`188`] Update docker backend image to ``python:3.12-slim-trixie`` and frontend image to ``node:24-trixie-slim``
* Upgrade python dependencies

* [:open-api-framework:`171`] ``open-api-framework`` to 0.13.2
* ``commonground-api-common`` to 2.10.5
* ``notifications-api-common`` to 0.9.0
* ``django-setup-configuration`` to 0.11.0
* ``mozilla-django-oidc-db`` to 1.1.1
* ``maykin-common`` to 0.11.0
* ``django`` to 5.2.8
* ``uwsgi`` to 2.0.31
* ``pip`` to 25.3

**Documentation**

* [:objects-api:`689`] Fix resource reference in notification documentation.
* [:objects-api:`694`] Add minimum postgres database requirements to documentation.


3.4.0 (2025-10-28)
------------------
Expand Down Expand Up @@ -61,7 +117,7 @@ Change history

**Project maintenance**

* [:open-api-framework:`163`] Integrate django-common to make uses of shared views/templates
* [:open-api-framework:`163`] Integrate ``maykin-common`` to make uses of shared views/templates
* [:objects-api:`663`] Upload performance tests results to bencher
* [:open-api-workflows:`30`] Run API Design Rules linter on OpenAPI specification in CI

Expand Down Expand Up @@ -303,6 +359,13 @@ Change history
* DB_POOL_RECONNECT_TIMEOUT
* DB_POOL_NUM_WORKERS

.. warning::

**Experimental:** — connection pooling is *not yet recommended for production use*.
It may not behave as expected when running uWSGI with multiple processes or threads.
Use this feature cautiously and test thoroughly before deployment.
See the :ref:`documentation <database_connections>` for details.

* [:objects-api:`566`] Add DB_CONN_MAX_AGE environment variable (see `documentation for environment variables for database <https://objects-and-objecttypes-api.readthedocs.io/en/latest/installation/config.html#database>`_)

3.0.3 (2025-04-03)
Expand Down
7 changes: 5 additions & 2 deletions README.NL.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Objecten API
============

:Version: 3.4.0
:Version: 3.5.0
:Source: https://github.com/maykinmedia/objecttypes-api
:Keywords: objecten, assets, zaakobjecten

Expand Down Expand Up @@ -38,7 +38,10 @@ Applicatie versie Release datum API specificatie
================= ============== =============================
latest n/a `ReDoc <https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/maykinmedia/objects-api/master/src/objects/api/v2/openapi.yaml>`_,
`Swagger <https://petstore.swagger.io/?url=https://raw.githubusercontent.com/maykinmedia/objects-api/master/src/objects/api/v2/openapi.yaml>`_,
(`verschillen <https://github.com/maykinmedia/objects-api/compare/3.4.0..master>`_)
(`verschillen <https://github.com/maykinmedia/objects-api/compare/3.5.0..master>`_)
3.5.0 2025-12-01 `ReDoc <https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/maykinmedia/objects-api/3.5.0/src/objects/api/v2/openapi.yaml>`_,
`Swagger <https://petstore.swagger.io/?url=https://raw.githubusercontent.com/maykinmedia/objects-api/3.5.0/src/objects/api/v2/openapi.yaml>`_
(`verschillen <https://github.com/maykinmedia/objects-api/compare/3.4.0..3.5.0>`_)
3.4.0 2025-10-28 `ReDoc <https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/maykinmedia/objects-api/3.4.0/src/objects/api/v2/openapi.yaml>`_,
`Swagger <https://petstore.swagger.io/?url=https://raw.githubusercontent.com/maykinmedia/objects-api/3.4.0/src/objects/api/v2/openapi.yaml>`_
(`verschillen <https://github.com/maykinmedia/objects-api/compare/3.3.1..3.4.0>`_)
Expand Down
7 changes: 5 additions & 2 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
Objects API
===========

:Version: 3.4.0
:Version: 3.5.0
:Source: https://github.com/maykinmedia/objects-api
:Keywords: objects, assets, zaakobjecten

Expand Down Expand Up @@ -36,7 +36,10 @@ Application version Release date API specification
=================== ============== =============================
latest n/a `ReDoc <https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/maykinmedia/objects-api/master/src/objects/api/v2/openapi.yaml>`_,
`Swagger <https://petstore.swagger.io/?url=https://raw.githubusercontent.com/maykinmedia/objects-api/master/src/objects/api/v2/openapi.yaml>`_,
(`diff <https://github.com/maykinmedia/objects-api/compare/3.4.0..master>`_)
(`diff <https://github.com/maykinmedia/objects-api/compare/3.5.0..master>`_)
3.5.0 2025-12-01 `ReDoc <https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/maykinmedia/objects-api/3.5.0/src/objects/api/v2/openapi.yaml>`_,
`Swagger <https://petstore.swagger.io/?url=https://raw.githubusercontent.com/maykinmedia/objects-api/3.5.0/src/objects/api/v2/openapi.yaml>`_
(`diff <https://github.com/maykinmedia/objects-api/compare/3.4.0..3.5.0>`_)
3.4.0 2025-10-28 `ReDoc <https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/maykinmedia/objects-api/3.4.0/src/objects/api/v2/openapi.yaml>`_,
`Swagger <https://petstore.swagger.io/?url=https://raw.githubusercontent.com/maykinmedia/objects-api/3.4.0/src/objects/api/v2/openapi.yaml>`_
(`diff <https://github.com/maykinmedia/objects-api/compare/3.3.1..3.4.0>`_)
Expand Down
28 changes: 14 additions & 14 deletions docs/admin/object.rst
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ corrected in the "Correction" field of the next record.
In the Objects API you always see one record, which contains data of a certain time (by default
the latest one). However in the admin interface you can see all the records created for the object.

.. _admin_objects_search:

Search objects in the admin
---------------------------
Expand All @@ -77,22 +78,21 @@ You can search by **UUID** or inside object data using the format:

Operators:

- ``exact`` - exact match
- ``icontains`` - case insensitive substring match
- ``gt`` - greater than
- ``gte`` - greater than or equal to
- ``lt`` - less than
- ``exact`` - exact match
- ``icontains`` - case insensitive substring match
- ``gt`` - greater than
- ``gte`` - greater than or equal to
- ``lt`` - less than
- ``lte`` - less than or equal to

Examples:

- ``0233da1f-32c1-4e7d-9896-2eecc7d24288`` - searching directly by object UUID
- ``id__exact__1``
- ``naam__icontains__boom``
- ``date__gt__2025-01-01``
- ``date__gte__2025-06-15``
- ``date__lt__2025-12-31``
- ``date__lte__2025-06-15``
- ``location__city__exact__Amsterdam``
- ``0233da1f-32c1-4e7d-9896-2eecc7d24288`` - searching directly by object UUID
- ``id__exact__1``
- ``naam__icontains__boom``
- ``date__gt__2025-01-01``
- ``date__gte__2025-06-15``
- ``date__lt__2025-12-31``
- ``date__lte__2025-06-15``
- ``location__city__exact__Amsterdam``
- ``location__region__icontains__Noord``

4 changes: 2 additions & 2 deletions docs/api/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ API Specification version(s)
`Swagger <https://petstore.swagger.io/?url=https://raw.githubusercontent.com/maykinmedia/objecttypes-api/3.0.3/src/objecttypes/api/v2/openapi.yaml>`__
)
`Objects API`_ 2.5.0 (
`Redoc <https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/maykinmedia/objects-api/3.4.0/src/objects/api/v2/openapi.yaml>`__,
`Swagger <https://petstore.swagger.io/?url=https://raw.githubusercontent.com/maykinmedia/objects-api/3.4.0/src/objects/api/v2/openapi.yaml>`__
`Redoc <https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/maykinmedia/objects-api/3.5.0/src/objects/api/v2/openapi.yaml>`__,
`Swagger <https://petstore.swagger.io/?url=https://raw.githubusercontent.com/maykinmedia/objects-api/3.5.0/src/objects/api/v2/openapi.yaml>`__
)
====================== ==========================================

Expand Down
10 changes: 10 additions & 0 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,10 @@

extlinks = {
"objects-api": ("https://github.com/maykinmedia/objects-api/issues/%s", "#%s"),
"commonground-api-common": (
"https://github.com/maykinmedia/commonground-api-common/issues/%s",
"#%s",
),
"open-api-framework": (
"https://github.com/maykinmedia/open-api-framework/issues/%s",
"#%s",
Expand All @@ -133,10 +137,16 @@
),
}

oaf_version = _version("open-api-framework")
django_structlog_version = _version("django-structlog")

intersphinx_mapping = {
"django-structlog": (
f"https://django-structlog.readthedocs.io/en/{django_structlog_version}",
None,
),
"oaf": (
f"https://open-api-framework.readthedocs.io/en/{oaf_version}/",
None,
),
}
2 changes: 1 addition & 1 deletion docs/installation/config.rst
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Database
* ``DB_HOST``: hostname of the PostgreSQL database. Defaults to ``db`` for the docker environment, otherwise defaults to ``localhost``.
* ``DB_PORT``: port number of the database. Defaults to: ``5432``.
* ``DB_CONN_MAX_AGE``: The lifetime of a database connection, as an integer of seconds. Use 0 to close database connections at the end of each request — Django’s historical behavior. This setting is ignored if connection pooling is used. Defaults to: ``60``.
* ``DB_POOL_ENABLED``: Whether to use connection pooling. Defaults to: ``False``.
* ``DB_POOL_ENABLED``: **Experimental:** Whether to use connection pooling. This feature is not yet recommended for production use. See the documentation for details: https://open-api-framework.readthedocs.io/en/latest/connection_pooling.html. Defaults to: ``False``.
* ``DB_POOL_MIN_SIZE``: The minimum number of connection the pool will hold. The pool will actively try to create new connections if some are lost (closed, broken) and will try to never go below min_size. Defaults to: ``4``.
* ``DB_POOL_MAX_SIZE``: The maximum number of connections the pool will hold. If None, or equal to min_size, the pool will not grow or shrink. If larger than min_size, the pool can grow if more than min_size connections are requested at the same time and will shrink back after the extra connections have been unused for more than max_idle seconds. Defaults to: ``None``.
* ``DB_POOL_TIMEOUT``: The default maximum time in seconds that a client can wait to receive a connection from the pool (using connection() or getconn()). Note that these methods allow to override the timeout default. Defaults to: ``30``.
Expand Down
39 changes: 12 additions & 27 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading