diff --git a/CHANGELOG.md b/CHANGELOG.md index a09f315..74f25aa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,12 +11,13 @@ documentation, and CI work are left out. ## [Unreleased] +## [0.3.0] — 2026-08-20 + ### Added - Optional sign-in at the organisation's OpenID Connect provider, for - deployments without an authenticating proxy in front: `OIDC_ENABLED` plus - the client credentials and `APP_PUBLIC_URL` gate every API route on a - signed session cookie. No accounts, no roles — see + deployments that have no authenticating proxy in front. Set `OIDC_ENABLED` + plus the client credentials and `APP_PUBLIC_URL` — see [Single sign-on](docs/operations/sso.md). ## [0.2.1] — 2026-08-19 @@ -40,26 +41,19 @@ documentation, and CI work are left out. ### Added -- `VISION_OCR_DIALECT` selects the vision-OCR model family (`unlimited_ocr`, - `chandra`, `plain`) and supplies the prompt, token and body defaults — see - [OCR engines](docs/operations/ocr-engines.md). - -- `VISION_OCR_PROFILES` offers several OCR models at once, one pickable per - document in the advanced settings — see - [OCR engines](docs/operations/ocr-engines.md). - -- `compose.chandra.yml` runs a datalab chandra GPU OCR sidecar, as - `compose.unlimited-ocr.yml` does for Unlimited-OCR — see +- Vision OCR gained `VISION_OCR_DIALECT` (model family `unlimited_ocr`, + `chandra` or `plain`, each supplying its own prompt, token and body + defaults), `VISION_OCR_PROFILES` (several models at once, one pickable per + document), and `compose.chandra.yml` for a chandra GPU sidecar next to the + existing `compose.unlimited-ocr.yml` — see [OCR engines](docs/operations/ocr-engines.md). ### Changed -- `.env.example` is now a short setup worksheet that ships with the LLM - detector enabled: fill in `OPENAI_API_BASE`/`LLM_MODEL` before first start - (or set `DETECTORS=rules` for a look without an LLM) — see - [Configuration](docs/operations/configuration.md). - -- `LLM_REQUEST_TIMEOUT_SECONDS` now defaults to `600` instead of `120` — see +- `.env.example` is now a short setup worksheet shipping with the LLM detector + enabled: fill in `OPENAI_API_BASE`/`LLM_MODEL` before first start, or set + `DETECTORS=rules` for a look without an LLM. +- `LLM_REQUEST_TIMEOUT_SECONDS` defaults to `600` instead of `120`. Both: [Configuration](docs/operations/configuration.md). ## [0.1.3] — 2026-08-07 @@ -153,6 +147,7 @@ First tagged version. configurable deployment banner sits above the header. - Documentation site (MkDocs Material) under `docs/`. +[0.3.0]: https://github.com/KatherLab/deidentifier/compare/v0.2.1...v0.3.0 [0.2.1]: https://github.com/KatherLab/deidentifier/compare/v0.2.0...v0.2.1 [0.2.0]: https://github.com/KatherLab/deidentifier/compare/v0.1.3...v0.2.0 [0.1.3]: https://github.com/KatherLab/deidentifier/compare/v0.1.2...v0.1.3 diff --git a/CITATION.cff b/CITATION.cff index 002b642..791855c 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -45,8 +45,8 @@ keywords: - "privacy-preserving artificial intelligence" license: "AGPL-3.0-or-later" -version: "0.2.1" -date-released: "2026-08-19" +version: "0.3.0" +date-released: "2026-08-20" references: - type: article diff --git a/THIRD_PARTY_NOTICES.md b/THIRD_PARTY_NOTICES.md index 88ef09e..8ade239 100644 --- a/THIRD_PARTY_NOTICES.md +++ b/THIRD_PARTY_NOTICES.md @@ -1,6 +1,6 @@ # Third-Party Notices -The Medical Document Anonymizer (version `0.2.1`) is distributed +The Medical Document Anonymizer (version `0.3.0`) is distributed under the `AGPL-3.0-or-later` license. It bundles the third-party open-source components listed below, each governed by its own license. Full license texts are available in each project's repository (linked diff --git a/backend/src/core/config.py b/backend/src/core/config.py index 29c02f4..47e119d 100644 --- a/backend/src/core/config.py +++ b/backend/src/core/config.py @@ -41,7 +41,7 @@ class Settings(BaseSettings): # Application APP_ENV: str = "development" - APP_VERSION: str = "0.2.1" + APP_VERSION: str = "0.3.0" APP_MAX_UPLOAD_MB: int = Field(default=20, ge=1) APP_MAX_TEXT_CHARS: int = Field(default=500_000, ge=1) APP_ALLOW_INSECURE_CONTENT_LOGGING: bool = False diff --git a/docs/operations/deployment.md b/docs/operations/deployment.md index c732f58..f411f28 100644 --- a/docs/operations/deployment.md +++ b/docs/operations/deployment.md @@ -20,8 +20,8 @@ has been published to `ghcr.io`, a deployment host can skip the build toolchain entirely: ```bash -DEIDENTIFIER_IMAGE_TAG=v0.2.1 docker compose pull -DEIDENTIFIER_IMAGE_TAG=v0.2.1 docker compose up -d +DEIDENTIFIER_IMAGE_TAG=v0.3.0 docker compose pull +DEIDENTIFIER_IMAGE_TAG=v0.3.0 docker compose up -d ``` You still need `compose.yml` and your `.env` on that host. diff --git a/package-lock.json b/package-lock.json index 15872a2..5e92e51 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "deidentifier", - "version": "0.2.1", + "version": "0.3.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "deidentifier", - "version": "0.2.1", + "version": "0.3.0", "license": "AGPL-3.0-or-later", "dependencies": { "@lucide/vue": "1.33.0", diff --git a/package.json b/package.json index 3ce8a64..a1674d7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "deidentifier", - "version": "0.2.1", + "version": "0.3.0", "private": true, "description": "Deidentifier frontend — anonymize German clinical documents locally.", "license": "AGPL-3.0-or-later", diff --git a/pyproject.toml b/pyproject.toml index 5e347fc..2de97a5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "deidentifier" -version = "0.2.1" +version = "0.3.0" description = "Locally deployable anonymizer for German clinical documents" requires-python = ">=3.13,<3.15" # Every dependency is pinned exactly, like the frontend's package.json: this is diff --git a/uv.lock b/uv.lock index dfb72dd..3f72a09 100644 --- a/uv.lock +++ b/uv.lock @@ -296,7 +296,7 @@ wheels = [ [[package]] name = "deidentifier" -version = "0.2.1" +version = "0.3.0" source = { virtual = "." } dependencies = [ { name = "fastapi" },