From e992c7b3b90d34ad2cf2aa945b7ce93e14c91fd4 Mon Sep 17 00:00:00 2001 From: Renn F Date: Sat, 26 Sep 2026 15:51:00 +0200 Subject: [PATCH] release(4.3.2): block response Content-Type, guard-core 4.1.0 tracking --- .mike.yml | 3 ++- CHANGELOG.md | 11 +++++++++++ docs/index.md | 2 +- docs/release-notes.md | 11 +++++++++++ docs/versions/versions.json | 3 ++- pyproject.toml | 4 ++-- 6 files changed, 29 insertions(+), 5 deletions(-) diff --git a/.mike.yml b/.mike.yml index 5ccacdc..4f36f8b 100644 --- a/.mike.yml +++ b/.mike.yml @@ -2,6 +2,7 @@ version_selector: true title_switch: true versions_file: docs/versions/versions.json versions: + - 4.3.2 - 4.3.1 - 4.3.0 - 4.2.0 @@ -16,4 +17,4 @@ versions: - 1.0.0 - latest aliases: - latest: 4.3.1 + latest: 4.3.2 diff --git a/CHANGELOG.md b/CHANGELOG.md index 82b37b7..7276273 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ Changelog ___ +v4.3.2 (2026-09-26) +------------------- + +Block response Content-Type, guard-core 4.1.0 tracking (v4.3.2) +--------------------------------------------------------------- + +- **Fixed** - Blocked responses now declare `Content-Type: text/plain` (#22): the Django response factory left the content type unset, so middleware-generated 403/429/400 pages went out without an explicit content type and clients were left guessing. The factory now sets an explicit `text/plain` content type, matching the engine's reference response factory and the fastapi-guard (#144) and flaskapi-guard (#25) fixes. +- **Compatibility** - The `guard-core` floor moves from `>=4.0.0` to `>=4.1.0` in `pyproject.toml` (no upper bound), so this adapter tracks the guard-core 4.1.0 engine (the exempt_ips skip-list, the recon leading-separator gate, the raw-view recon scan, the cross-engine interop harness). The adapter delegates all security behavior to the engine through the unasync-generated sync mirror; no sync API djapi-guard uses changed shape. + +___ + v4.3.1 (2026-09-23) ------------------- diff --git a/docs/index.md b/docs/index.md index 53f4e48..6b912cc 100644 --- a/docs/index.md +++ b/docs/index.md @@ -109,7 +109,7 @@ You can also download the example app as a Docker container from [GitHub Contain docker pull ghcr.io/rennf93/djapi-guard-example:latest # Or pull a specific version (matches library releases) -docker pull ghcr.io/rennf93/djapi-guard-example:v4.3.1 +docker pull ghcr.io/rennf93/djapi-guard-example:v4.3.2 ``` ___ diff --git a/docs/release-notes.md b/docs/release-notes.md index 36b8056..5ca5dd9 100644 --- a/docs/release-notes.md +++ b/docs/release-notes.md @@ -3,6 +3,17 @@ Release Notes ___ +v4.3.2 (2026-09-26) +------------------- + +Block response Content-Type, guard-core 4.1.0 tracking (v4.3.2) +--------------------------------------------------------------- + +- **Fixed** - Blocked responses now declare `Content-Type: text/plain` (#22): the Django response factory left the content type unset, so middleware-generated 403/429/400 pages went out without an explicit content type and clients were left guessing. The factory now sets an explicit `text/plain` content type, matching the engine's reference response factory and the fastapi-guard (#144) and flaskapi-guard (#25) fixes. +- **Compatibility** - The `guard-core` floor moves from `>=4.0.0` to `>=4.1.0` in `pyproject.toml` (no upper bound), so this adapter tracks the guard-core 4.1.0 engine (the exempt_ips skip-list, the recon leading-separator gate, the raw-view recon scan, the cross-engine interop harness). The adapter delegates all security behavior to the engine through the unasync-generated sync mirror; no sync API djapi-guard uses changed shape. + +___ + v4.3.1 (2026-09-23) ------------------- diff --git a/docs/versions/versions.json b/docs/versions/versions.json index 0275b7a..7fc9668 100644 --- a/docs/versions/versions.json +++ b/docs/versions/versions.json @@ -1,4 +1,5 @@ { + "4.3.2": "4.3.2", "4.3.1": "4.3.1", "4.3.0": "4.3.0", "4.2.0": "4.2.0", @@ -12,5 +13,5 @@ "2.0.0": "2.0.0", "1.0.1": "1.0.1", "1.0.0": "1.0.0", - "latest": "4.3.1" + "latest": "4.3.2" } diff --git a/pyproject.toml b/pyproject.toml index 7d90772..4ff1d6b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "djapi-guard" -version = "4.3.1" +version = "4.3.2" description = "A security library for Django to control IPs, log requests, and detect penetration attempts." authors = [ {name = "Renzo Franceschini", email = "rennf93@users.noreply.github.com"} @@ -23,7 +23,7 @@ classifiers = [ ] dependencies = [ "django", - "guard-core>=4.0.0", + "guard-core>=4.1.0", ] [project.urls]