Change history

4.0.0 (2026-04-13)

Major release

Warning

This version combines the Objects API and Objecttypes into a single application named Open Object. This application no longer supports objecttypes hosted in an external application. Before upgrading to 4.0.0, it is required to first update to Objects API version 3.6.0 and run an import command to locally import the objecttypes (make sure to read ObjectTypes API migration for more details).

Warning

From version 4.0.0 onward, the Docker images for Open Object will be published under the Dockerhub repository maykinmedia/open-object. If you want to use Open Object and you are using maykinmedia/objects-api, make sure to change to the new repository before deploying.

💥 Breaking changes

  • [#564] Combine Objects API and Objecttypes API into Open Object and only allow usage of local objecttypes

Note

The API now ignores the domain used in objecttype URLs and only checks if an objecttype exists for that UUID in the Open Object database. This means that applications that still use URLs that have the domain of the old Objecttypes API instance for requests to Open Object will not break.

  • Changes for Open Telemetry

    • Change namespace for metrics from objects to openobject and add metrics for Objecttypes (see Metrics)

    • Change default for environment variable OTEL_SERVICE_NAME from objects to openobject (with postfixes for celery, flower)

  • Changes to setup_configuration (see Configuration (CLI))

    • Remove the SitesConfigurationStep, make sure to remove the namespace sites_config from your setup_configuration data

    • Remove the attribute service_identifier for ObjectTypesConfigurationStep (namespace objecttypes)

    • Remove the attribute fields and use_fields for TokenAuthConfigurationStep (namespace tokenauth)

  • Changes to environment variables

    • [#730] Rename ENABLE_STRUCTLOG_REQUESTS to LOG_REQUESTS

    • [#730] Rename LOG_REQUESTS to LOG_OUTGOING_REQUESTS

    • [#730] Use the environment variable CELERY_BROKER_URL for the Celery broker URL setting, previously this incorrectly used CELERY_RESULT_BACKEND for this setting.

    • [#730] Remove django.contrib.sites and related code, this makes SITE_DOMAIN a required environment variable!

  • [#730] Remove redirect for deprecated API schema URLs. The schema is now only available under /api/v2/openapi.json or /api/v2/openapi.yaml

  • [#142] Update API response error format to be compliant with application/problem+json

New features

Bugfixes

  • [#718] Fix 500 error on duplicate UUID when creating objects

  • Fix styling for account_blocked page

Maintenance

  • [#211] Optimize memory usage for uWSGI and celery-flower

    • Make sure uWSGI workers restart after 1000 requests

    • Set FLOWER_MAX_TASKS=1000 and FLOWER_MAX_WORKERS=50

  • Upgrade python dependencies

    • django to 5.2.13

    • pyjwt to 2.12.1

    • open-api-framework to 0.13.4

    • cryptography to 46.0.6

    • pyopenssl to 26.0.0

    • mozilla-django-oidc to 5.0.2

    • mozilla-django-oidc-db to 2.0.1

    • commonground-api-common to 2.11.0

    • attrs to 25.4.0

    • cbor2 to 5.9.0

    • cffi to 2.0.0

    • requests to 2.33.1

  • Upgrade npm dependencies

  • [#728] Improve setup for bencher

  • Removed unnecessary dev packages from docker build

  • Fix CodeQL warning for codeql-analysis action

  • Add explicit least privilege permissions for each workflow

Documentation

3.6.0 (2026-02-06)

New features

  • [#564] Add ObjectType fields & ObjectTypeVersion model

  • [#564] Add command to import objecttypes from API for 4.0.0 migration (see ObjectTypes API migration for more information)

  • [#712] Ensure token authorization display name is unique identifier in admin

  • [#708] Support Open Archiefbeheer destruction in objects api

    • Add references field to ObjectRecord to link objecten to zaken

    • Emit zaak-gekoppeld and zaak-ontkoppeld cloud events when an object is linked to or unlinked from a zaak (can be enabled with ENABLE_CLOUD_EVENTS environment variable)

Warning

The zaak-gekoppeld and zaak-ontkoppeld pattern is still under active development and could be subject to change in future releases. It is not recommended to rely on this pattern in production yet.

  • [#724] Remove linkable_to_zaken from ObjectType

Maintenance

  • Fix factory invocations

  • Avoid using event key in uwsgi logs

  • [#197] use commonground-api-common pagination

  • Upgrade python dependencies

    • asgiref to 3.11.0

    • cbor2 to 5.8.0

    • django to 5.2.11

    • open-api-framework to 0.13.3

    • urllib3 to 2.6.3

    • wheel to 0.46.3

    • protobuf to 6.33.5

    • pip to 26.1

    • virtualenv to 20.36.1

    • filelock to 3.20.3

    • factory-boy to 3.3.3

    • [#197] commonground-api-common to 2.10.7

Documentation

  • [#171] Add connection pooling changelog warning

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.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 configurations, making it easier to re-use identity provider settings across multiple client IDs.

Additionally, any configuration using django-setup-configuration must be updated to reflect these changes, as it is now split into two distinct sections: one for providers and one for clients. This separation also exists in the admin interface, so both sections can be configured directly through the user interface. For example:

providers:
  - identifier: example-provider
    # other provider settings
clients:
  - identifier: admin-oidc
    oidc_provider_identifier: example-provider
    # other client settings

For detailed configuration, see Admin OIDC Configuration Step. Make sure to check which fields are marked as DEPRECATED and replace them with the fields that are mentioned as replacements.

New features

  • [#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:

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 Observability documentation.

Bugfixes

  • [#134] Fix exceptions in API endpoints not forwarded to Sentry when DEBUG=False

Maintenance

  • [#191] nodejs to v24

  • [#31] codeql to v4

  • [#188] Update docker backend image to python:3.12-slim-trixie and frontend image to node:24-trixie-slim

  • Upgrade python dependencies

    • [#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

  • [#689] Fix resource reference in notification documentation.

  • [#694] Add minimum postgres database requirements to documentation.

3.4.0 (2025-10-28)

Warning

This version contains a data migration which denormalizes the object_type on the ObjectRecord model to make queries more performant, by avoiding additional JOINs.

This data migration can take around 40 minutes to 1.5 hours, dependent on the amount of ObjectRecords in the database. It was tested on a dataset of 3.8 million ObjectRecords, for which this migration took 45 minutes. This data migration does handle newly created ObjectRecords if the Objects API is still running simultaneously.

If the Objects API is still running while this migration is applied and if there is always a constant influx of created ObjectRecords, this migration could theoretically keep running indefinitely, or there could be a small window (if the data migration does finish) where the NOT NULL constraint is not yet applied and NULL values are being inserted, causing errors. Although this is unlikely, if your instance is at risk for this, it could be safer to take the Objects API offline before migrating to avoid this.

Performance optimizations

  • [#677] Denormalize ObjectRecord by adding _object_type to avoid additional JOINs in queries. This improves performance for read operations via the API.

Project maintenance

  • [#163] Integrate maykin-common to make uses of shared views/templates

  • [#663] Upload performance tests results to bencher

  • [#30] Run API Design Rules linter on OpenAPI specification in CI

3.3.1 (2025-10-16)

Bugfixes/QOL

  • [#621] Add environment variable OBJECTS_ADMIN_SEARCH_DISABLED (default: False) to disable the search bar in the Objects admin list view

3.3.0 (2025-10-06)

New features

  • [#653] Add created_on & modified_on to Object & ObjectRecord models to allow sorting and filtering in the admin UI

  • [#175] Changes to logging of handled and unhandled exceptions (see Exceptions)

    • Log events for handled API exceptions (e.g. HTTP 400) now include data

    • Log events for unhandled API exceptions (e.g. HTTP 500) now include the traceback via exception

  • [#184] setup_configuration now supports pulling values from environment variables in YAML configuration by using value_from (see setup_configuration documentation for more information)

Project maintenance

  • Upgrade dependencies

    • Django to 5.2.7

    • pip to 25.2 in dev dependencies

    • [#175] commonground-api-common to 2.10.1

    • [#184] django-setup-configuration to 0.9.0

    • [#186] open-api-framework to 0.13.1

  • Fix ReadTheDocs build by installing required dependencies

3.2.0 (2025-09-16)

Warning

This release adds a GINIndex on data_attrs, which might slow down writes to ObjectRecord occasionally, when this index is updated. The migration that adds this index concurrently, so it does not lock the table while migrating, but adding the index might take some time (several minutes) if the table contains a lot of ObjectRecords.

No additional Postgres extensions are required to use this index.

Features

  • [#661] Add GINIndex on ObjectRecord.data to improve performance when filtering on data_attrs

Project maintenance

  • [#85] Set the default number of threads used by uWSGI to 4

3.1.4 (2025-08-28)

Maintenance

  • [#157] Add script for management information datadump exporting relevant component data (see Scripts)

  • [#179] Add monkeypatch to requests applying a default timeout to all requests calls

  • Upgrade dependencies

    • zgw-consumers to 1.0.0

Documentation

  • [#159] Add functionality to create model image for Objects API and ObjectTypes API(see UML Diagrams)

3.1.3 (2025-08-04)

Bugfixes/QOL

  • Upgrade kombu to ensure celery worker properly reestablishes connection to redis on restart

Maintenance

  • Add environment variable CELERY_RESULT_EXPIRES to change how long the results will be stored in Redis (see Environment configuration reference > Celery for more information)

  • Upgrade dependencies

    • celery to 5.5.3

    • kombu to 5.5.4

    • packaging to 25.0

    • billiard to 4.2.1

    • tzdata to 2052.2

3.1.2 (2025-07-22)

Bugfixes/QOL

  • Fix Elastic APM not showing time spent in database when using connection pooling via envvars

Maintenance

  • Add environment variable DB_DISABLE_SERVER_SIDE_CURSORS to disable server side cursors (see Environment configuration reference > Database for more information)

  • Upgrade dependencies

    • django-privates to 3.1.1

    • commonground-api-common to 2.7.0

    • open-api-framework to 0.12.0

  • Use DB connection pooling settings from open-api-framework

Warning

The connection pooling settings (via environment variables) apply to each uWSGI process and each replica, this means that when running with 2 replicas and 4 processes for example, there will effectively be 8 connection pools with the above settings.

Documentation

  • Fix incorrect default in docs for DB_CONN_MAX_AGE

  • [#148] Add prerequisites docs page

  • [#118] Remove outdated deployment tooling/docs

3.1.1 (2025-07-04)

Bugfixes

  • [#619] Fix unstructured logs still being emitted by the Celery container

Project maintenance

  • [#587] Add rule to disallow direct logging imports

  • [#151] Move ruff and bump-my-version configurations into pyproject.toml

  • [#149] Add dark/light theme toggle to the admin interface

  • [#139] Integrate django-upgrade-check to ensure that all required versions are correctly handled during instance upgrades

  • Upgrade dependencies: * django to 5.2.3 * notifications-api-common to 0.7.3 * commonground-api-common to 2.6.7 * open-api-framework to 0.11.0 * django-setup-configuration to 0.8.2 * django-debug-toolbar to 5.2.0 * zgw-consumers to 0.38.1 * requests to 2.32.4 * urllib3 to 2.5.0 * vcrpy to 7.0.0

Performance optimizations

  • [#615] Improve admin listview search performance and usability

3.1.0 (2025-05-26)

New features

Note

The logging format has been changed from unstructured to structured with structlog. For more information on the available log events and their context, see Logging.

  • [#586] Add log events for creation/updating of objects via the API

Performance optimizations

  • [#538] Apply caching to reverse calls in ObjectUrlField to avoid additional overhead

  • [#538] Avoid doing more queries than necessary for /objects endpoint

Bugfixes and QOL

  • [#576] Add missing type: object property to ObjectRecord in OAS

  • Do not use save_outgoing_requests log handler if LOG_REQUESTS is set to false

Project maintenance

  • [#562] Fix security issues by upgrading packages in Dockerfile

  • Upgrade dependencies:

    • tornado to 6.5.0 to fix security issues

    • josepy to 1.14.0

    • django-formtools to 2.5.1

    • open-api-framework to 0.10.1

    • commonground-api-common to 2.6.4

  • [#140] Upgrade python to 3.12

  • Replace OAS workflows with single workflow

  • [#133] Replace black, isort and flake8 with ruff and update code-quality workflow

  • Remove references to API test platform in README/documentation

3.0.4 (2025-05-13)

Warning

This release upgrades Django to version 5.2.1, which requires PostgreSQL version 14 or higher. Attempting to deploy with PostgreSQL <14 will cause errors during deployment.

Bugfixes and QOL

  • [#570] Removed broken ObjectRecord geometry map widget.

  • [#374] Fixed empty token auth field when creating Permission for Token authorization.

Project maintenance

  • Add additional performance tests for pagination

  • Upgrade dependencies

    • django to 5.2.1

    • django-setup-configuration to 0.7.2

    • commonground-api-common to 2.6.2

    • httpcore to 1.0.9

    • h11 to 0.16.0

  • Upgrade dev dependencies

    • django-webtest to 1.9.13

  • Upgrade npm packages to fix vulnerabilities

  • Fixed admin logout button

  • [#550] Implement cache for objecttypes

  • [#550] add OBJECTTYPE_VERSION_CACHE_TIMEOUT environment variable (see documentation for environment variables for caching)

  • [#572] Add db connection pooling environment variables (see documentation for environment variables for database)

    • DB_POOL_ENABLED

    • DB_POOL_MIN_SIZE

    • DB_POOL_MAX_SIZE

    • DB_POOL_TIMEOUT

    • DB_POOL_MAX_WAITING

    • DB_POOL_MAX_LIFETIME

    • DB_POOL_MAX_IDLE

    • 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 documentation for details.

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 documentation for details.

3.0.3 (2025-04-03)

Project maintenance

  • [#59] Deprecate django.contrib.sites and add SITE_DOMAIN environment variable as a replacement (see Environment configuration reference > Optional for more information)

  • [#125] Upgrade docker image to debian-bookworm

  • [#117] Confirm support for Postgres 17 and drop (verified) support for Postgres 12

  • Confirm support for Postgis 3.2/3.5 and drop (verified) support for Postgis 2.5

  • Upgrade nodejs version in Docker image to 20

  • Upgrade dependencies

    • open-api-framework to 0.9.6

    • commonground-api-common to 2.5.5

    • notifications-api-common to 0.7.2

  • Upgrade dev dependencies

    • black to 25.1.0

    • flake to 7.1.2

    • isort to 6.0.1

  • [#116] Fix codecov publish

  • [#115] Fix oas CI check

3.0.2 (2025-03-07)

Bugfixes and QOL

  • [#538] Optimize objects list performance

  • [#523] Added help text in Permission admin view to explain that authorization fields are reset when the Object type is changed

Project maintenance

  • Upgrade dependencies:

    • [#541] Upgrade kombu to 5.4.2, this should fix the issue that caused Celery workers to not be able to reestablish connections with Redis

    • Upgrade Django to 4.2.20

    • Upgrade jinja2 to 3.1.6 to fix security issue

  • [#538] Add performance test for objects API list

  • [#538] Add django-silk for performance profiling in development environment

3.0.1 (2025-03-04)

Bugfixes and QOL

  • [#464] improved performance of the permission page in the Admin :zap:

  • [#79] disabled admin nav sidebar

Project maintenance

  • bumped python dependencies: open-api-framework to 0.9.3, commonground-api-common to 2.5.0, django to 4.2.19, cryptography to 44.0.1

  • [#529] added bump-my-version to dev dependencies

  • [#44] added workflow to CI to auto-update open-api-framework

  • [#509, #104] updated quick-start workflow to test docker-compose.yml

  • [#165] remove unused celery worker command line args

Documentation

  • [#521] updated documentation for django-setup-configuration steps with YAML example directive

3.0.0 (2025-01-22)

Breaking changes

  • removed objects-api V1 [#453]

2.5.0 (2025-01-09)

Breaking changes

  • upgraded django-setup-configuration to 0.5.0

Warning

Previous configuration files used for setup_configuration do not work. See Configuration (CLI) for the available settings that can now be configured through setup_configuration.

  • added support for configuring permissions through django-setup-configuration version 0.4.0 [#497]

  • added support for configuring token authorizations through django-setup-configuration version 0.4.0 [#485]

  • added support for configuring mozilla-django-oidc-db through django-setup-configuration version 0.4.0 [#490]

  • added support for configuring OBJECTTYPE’s through django-setup-configuration version 0.4.0 [#467]

  • added support for configuring Notificatiescomponentconfiguratie through django-setup-configuration version 0.4.0 [#484]

New features

  • added the new data_attrs query parameter for the OBJECT’s resource [#472]

Warning

Usage of the data_attr query parameter is deprecated. Usage of the new data_attrs query parameter is recommended.

  • updated OAF version to 0.9.1. This upgrade allows admin users managing their sessions through the admin.

Bugfixes and QOL

  • fixed latest docker image tag not being pushed [open-api-framework/#92]

  • fixed documentation building in CI [#501]

  • included gettext in docker images [#495]

  • updated zgw-consumers to 0.35.1 [open-api-framework/#66]

Warning

Configuring external services is now done through the Service model. This replaces the APICredential model in the admin interface. A data migration was added to move to the Service model. It is advised to verify the Service instances in the admin to check that the data migration was ran as expected.

  • updated PATCH request behaviour for the data field [#466]

  • fixed CSP errors [open-api-framework/#68]

Project maintenance

  • implementend CI action to create a PR with latest OAF version [open-api-framework/#44]

  • security updates [open-api-framework/#93]

  • switched from pip-compile to uv [open-api-framework/#81]

  • pinned publish workflow to v3.0.1 [#504]

  • implementend open-api-workflows [open-api-framework/#13]

Documentation

  • added documentation for notification retry behavior [#403]

  • added missing changelog entry [#455]

2.4.4 (2024-10-01)

Bugfixes and QOL

  • fixed CSP errors on the OAS page (#458)

  • fixed OIDC login by making SameSite setting lax (#458)

  • fixed adding permissions in the Admin (#449)

  • fixed NOTIFICATIONS_DISABLED setting (#452)

Project maintenance

  • added CI action to check if OAF is up-to-date (#443)

2.4.3 (2024-09-18)

New features

  • added an endpoint to retrieve a specific object version (#328)

  • supported the in operator in data_attrs to match one element (#414)

Bugfixes and QOL

  • hid previous records available on particular date even if they match search parameters (#324)

  • fixed 2FA app title (#442)

  • bumped setuptools and npm dependencies (#441)

Project maintenance

  • disabled configuration steps by default (#446)

  • increase default values for uwsgi processes and threads (#448)

Warning

All configuration steps are now disabled by default. To enable them use the correspondent environment variables

2.4.2 (2024-08-26)

New features

  • updated open-api-framework to 0.8.0, which includes adding CSRF, CSP and HSTS settings (#438). All new environment variables are added to the documentation

Warning

SECURE_HSTS_SECONDS has been added with a default of 31536000 seconds, ensure that before upgrading to this version of open-api-framework, your entire application is served over HTTPS, otherwise this setting can break parts of your application (see https://docs.djangoproject.com/en/4.2/ref/middleware/#http-strict-transport-security)

Bugfixes and QOL

  • bumped python dependencies due to security issues: django, celery, certifi, maykin-2fa, mozilla-django-oidc-db, sentry-sdk, webob and others (#428)

  • bumped zgw-consumers to 0.29.0 and updated a code for clients, because of zgw-consumers breaking change.

  • paginated /api/v2/objects/{uuid}/history endpoint (#329)

  • fixed "register_kanalen command (#426)

  • fixed notification page link (open-zaak/open-notificaties#171)

** Documentation**

  • updated the documentation of environment variables using open-api-framework (open-zaak/open-zaak#1649)

2.4.1 (2024-08-06)

Bugfixes and QOL

  • added Celery healthcheck

  • made user emails unique to prevent two users logging in with the same email, causing an error

Project maintenance

  • added CI-job to check for unexpected changes in the OAS (#420)

Warning

User email addresses will now be unique on a database level. The database migration will fail if there are already two or more users with the same email address. You must ensure this is not the case before upgrading.

2.4.0 (2024-07-05)

New features

  • added superuser permissions to API (#369)

  • added setup_configuration management command which can configure API with environment variables (#368)

  • added Record.data as a search filter in the Admin (#381)

  • displayed Objecttype.uuid in the Objecttype and Object admin pages (#315)

Bugfixes and QOL

  • supported correctionFor = null in POST/PUT requests (#268)

  • added tests for additionalProperties keyword in JSON schema (#330)

  • fixed creating objects with empty data (#371)

  • fixed displaying the Token admin page if Object Types API is unavailable (#373)

  • fixed styling of OIDC login page (#392)

  • fixed styling of the help text icon in the Admin (#421)

  • updated demo data used in quick start process (#398, #400)

Project maintenance

  • updated Python to 3.11 (#379)

  • added open-api-framework dependency (#358)

  • refactored settings using open-api-framework (#413)

  • added logging of outgoind requests (#344)

  • added Trivy into the CI as an docker image scaner (#402)

  • added GitHub issue templates (#389)

  • merged quick start and regular docker compose files into one (#408)

  • changed caching backend from LocMem to Redis

  • Elastic APM service name can now be configured with ELASTIC_APM_SERVICE_NAME envvar

Documentation

  • added security policy (#390)

  • updated Quick start documentation (#348)

Warning

Because the caching backend was changed to Redis, existing deployments must add a Redis container or Redis instance (see Installation > Environment configuration reference in the documentation on how to configure) the connection with Redis

Warning

The service name for Elastic APM is now configurable via the ELASTIC_APM_SERVICE_NAME environment variable. The default value changed from Objects API to objects - <ENVIRONMENT>

2.3.2 (2024-05-03)

Bugfix release

This release addresses a security weakness.

  • [GHSA-3wcp-29hm-g82c] replaced PK for Token model.

2.3.1 (2024-03-22)

Bugfixes and QOL

  • fixed celery docker container (#376)

  • configured caches with redis (#377)

  • added flower to monitor celery tasks (#378)

Note

Flower is added to the docker, so now flower container could be deployed for monitoring purposes.

2.3.0 (2024-03-15)

  • Updated to Django 4.2.

Warning

Celery (and thus Redis) is now a required dependency.

Two-factor authentication is enabled by default. The DISABLE_2FA environment variable can be used to disable it if needed.

2.2.1 (2024-03-02)

Bugfixes and QOL

  • fixes OIDC config page by adding django_jsonform to INSTALLED_APPS (#350)

  • added USE_X_FORWARDED_HOST environment variable (#353)

  • added email environment variables (#366)

2.2.0 (2024-01-30)

Component changes

  • Bugfixes and QOL

  • fixed Permission form in the Admin (#309)

  • added ENVIRONMENT environment variable (#310)

  • updated python from 3.7 to 3.10 (#357)

  • bumped Django to 3.2 (#357)

  • bumped python libraries including mozilla-django-oidc, mozilla-django-oidc-db, zgw-consumers, uwsgi (#357, #338)

  • removed hijack library (#357)

  • updated base for docker image from Debian 10 to Debian 12 (#357)

API 2.2.0 changes

  • New features

    • added typeVersion query parameter (#306)

    • supported JSON merge when doing a partial update on data attribute (#351)

  • Bugfixes

    • added typeVersion query parameter (#306)

    • fixed date-time parsing in API filtering (#308)

Warning

Change in deployment is required. /media/ volume should be configured to share OAS files.

Explanation:

The new version of zgw_consumers library adds oas_file filed to Service model. This field saves OAS file into MEDIA_ROOT folder. The deployment now should have a volume for it. Please look at the example in docker-compose.yml

2.1.1 (2022-06-24)

  • Bugfixes and QOL

    • fixed updating objects with earlier startAt attribute (#282)

    • removed boostrap from the landing page (#294)

    • bumped to newer versions of pyjwt (#299)

    • fixed Elastic APM configuration (#289)

2.1.0 (2022-05-17)

Component changes

  • Bugfixes and QOL

    • managed 2FA authentication using environment variables (#250)

    • integrated with OpenID Connect (#246)

    • create initial superuser with environment variables (#254)

    • removed non-actual results when filtering on data_attr query param (#260)

    • supported objecttypes with json schemas without properties in the Objects Admin (#273)

    • bumped to newer versions of mozilla-django-oidc-db (#264), django, lxml, babel, waitress(#293), pillow (#285) and npm packages (#279)

    • remove swagger2openapi from dependencies (#292)

  • Deployment tooling / infrastructure

    • use ansible collections from Ansible Galaxy (#241)

API 1.3.0 changes

  • New features

    • supported numeric values for icontains query param (#262)

    • supported validation on hasGeometry field in the Objecttypes API (#263)

API 2.1.0 changes

  • New features

    • supported numeric values for icontains query param (#262)

    • supported validation on hasGeometry field in the Objecttypes API (#263)

    • supported ordering query param which allows to sort the results (#274)

2.0.0 (2021-09-22)

Component changes

  • Supports API 2.0.0 and API 1.2.0

API 1.2.0 changes

  • New features

    • supported having several API versions at the same time (#195)

    • enabled selecting set of fields for every object type version which are allowed to display in the API (#79)

    • sent notifications when the objects are changed in the API using Notificaties API. Sending notifications is an optional feature that can be disabled (#221, #237)

    • added an endpoint to show which API permissions the client has (#81)

    • made geometry field non-required for the search endpoint (#236)

    • supported dates in the data_attrs= query param (#214)

    • supported icontains operator in the data_attrs= query param, which allows case-insensitive search on the part of the string (#235)

    • added two-factor authentication for the Objects Admin (#232)

  • Bugfixes and QOL

    • bumped to newer versions of django, django-debug-toolbar, urllib3, sqlparse (#225, #243)

    • added superuser for quick-start (#203)

    • tested the performance of the API per version (#219)

  • Documentation

    • marked read-only fields as non-required in OAS (#210)

    • described how to configure authorization with the set of allowed fields in the admin (#79)

    • documented how to configure notifications (#245)

API 2.0.0 changes

  • Breaking features

    • paginated API responses (#148)

  • New features

    • supported data_icontains query param which requires Postgres 12+ (#235)

  • Deployment tooling / infrastructure

    • updated Postgres version in the Objects API Helm chart (#242)

1.1.1 (2021-06-22)

Bugfixes and QOL

  • Fixed OAS generation: remove unrelated error response bodies and headers, swap the notion of material and formal history (#197, #201)

  • Tested the implementation of the material and formal history (#168)

Documentation

  • Documented how to use the Objecttypes admin and the Objects admin (#60)

1.1.0 (2021-04-21)

New features

  • Decoupled authentication tokens from users in the admin (#115)

  • Added additional fields for tokens to store extra information (#155)

  • Adhered the Objecttypes API to API principles API-09, API-18, API-19, API-51 defined in API Design Rules of Nederlandse API Strategie (#46, #174)

  • Supported fields= query param and display only selected fields in the API response (#174)

  • Added length validation fo url fields (#154)

  • Improved the Admin UI:

    • Include uuid field to the “object” page (#156)

    • Make object_type field immutable (#150)

    • Add filtering on object_type to the “object” page (#157)

Bugfixes and QOL

  • Improved performance with database query optimization (#136) :zap:

  • Bumped to newer versions of Django, Jinja2, Pillow, PyYAML, pip-tools including security fixes (#183, #182, #184, #176, #193)

  • Fixed a crash when creating an object without a version in the admin (#146)

Deployment tooling / infrastructure

  • Added Helm chart to deploy the Objects API on Kubernetes (#180)

  • Added Ansible configuration to deploy the Objects API on single server (#59)

Documentation

  • Added a tutorial how to use the Objects API and the Objecttypes API with examples (#61)

  • Documented how to configure authentication and authorization for the Objects API and the Objecttypes API (#179)

  • Documented deployment of the Objects API and the Objecttypes API on single server and Kubernetes (#59)

  • Translated descriptions for Content-Crs and Accept-Crs headers from Dutch to English in the OAS (#106)

  • Added information about validation to the OAS (#106)

1.0.0 (2021-01-13)

🎉 First release of Objects API.