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
37 changes: 8 additions & 29 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Changelog

## Unreleased
## [1.3.0] - 2026-10-17

### Added

Expand Down Expand Up @@ -55,36 +55,15 @@

### Added (W6, pre-1.0.0 development on 1.0.0-SNAPSHOT; nothing released)

- Real adapter implementation over the guard-core-jvm facade (engine 4.3.2, pinned ref 5f4ea56
via includeBuild + dependency substitution): `GuardFilter` running the 17-check
`SecurityCheckPipeline` per request through the facade blocking bridge, `GuardMiddleware`
(the `GuardMiddlewareProtocol` port of fastapi-guard's SecurityMiddleware),
`ServletGuardRequest`/`ServletGuardResponse` protocol impls with cached/bounded body reads,
and the facade error-response factory as the only response builder (byte-exact error shapes).
- `GuardSecurityAutoConfiguration`: `guard.*` configuration properties reaching 122 of the 129
`SecurityConfig` fields plus `SecurityConfigCustomizer` beans for the 7 object-typed fields;
conditional beans; Redis auto-wiring through the facade `RedisManager` when
`guard.enable-redis`/`guard.redis-url` are set; opt-in `guard.eager-init` startup hook.
- 25 Guard* decorator annotations mapping the facade `SecurityDecorator` factory surface 1:1
(same parameters and defaults), resolved per handler method with method-identity route ids
(`StampedRoute` analog).
- Real adapter implementation over the guard-core-jvm facade (engine 4.3.2, pinned ref 5f4ea56 via includeBuild + dependency substitution): `GuardFilter` running the 17-check `SecurityCheckPipeline` per request through the facade blocking bridge, `GuardMiddleware` (the `GuardMiddlewareProtocol` port of fastapi-guard's SecurityMiddleware), `ServletGuardRequest`/`ServletGuardResponse` protocol impls with cached/bounded body reads, and the facade error-response factory as the only response builder (byte-exact error shapes).
- `GuardSecurityAutoConfiguration`: `guard.*` configuration properties reaching 122 of the 129 `SecurityConfig` fields plus `SecurityConfigCustomizer` beans for the 7 object-typed fields; conditional beans; Redis auto-wiring through the facade `RedisManager` when `guard.enable-redis`/`guard.redis-url` are set; opt-in `guard.eager-init` startup hook.
- 25 Guard* decorator annotations mapping the facade `SecurityDecorator` factory surface 1:1 (same parameters and defaults), resolved per handler method with method-identity route ids (`StampedRoute` analog).
- Public API re-exports of the engine's user-facing types (the fastapi-guard convention).
- Test surface: MockMvc integration tests (pipeline invocation, factory-exact error shapes,
bypass/exclude/passive semantics, annotation resolution), redis-backed rate limiting against
a live localhost:6379, properties binding, and servlet protocol unit tests (36 tests).
- Test surface: MockMvc integration tests (pipeline invocation, factory-exact error shapes, bypass/exclude/passive semantics, annotation resolution), redis-backed rate limiting against a live localhost:6379, properties binding, and servlet protocol unit tests (36 tests).
- `examples/demo-boot`: runnable Boot app with guarded + open routes.

### Changed (W8b, release engineering; nothing released)

- Maven coordinates move to groupId `com.guard-core` (the Central Portal namespace; guardcore.com
proved unverifiable and is not owned by the operator; nothing was ever published under
`com.guardcore`). Kotlin/JVM packages stay `com.guardcore.*` (hyphens are illegal in JVM
packages).
- `maven-publish` + `signing` with sources/javadoc jars and the Portal-required POM (MIT license,
developers, scm); repositories move to `settings.gradle.kts`; `GUARD_CORE_USE_COMPOSITE` env
toggle (default composite ON; `false` = resolve the engine from mavenLocal, then Maven Central,
the release-workflow mode).
- `.github/workflows/release.yml`: engine-artifact pre-flight on Maven Central (engine before
adapters), tests at tag, tag-consistency audit (bare vX.Y.z, tag equals the in-file version,
SNAPSHOT flip enforced), publish job with per-artifact repo1 existence check and a Central
Portal deployment. See docs/release.md.
- Maven coordinates move to groupId `com.guard-core` (the Central Portal namespace; guardcore.com proved unverifiable and is not owned by the operator; nothing was ever published under `com.guardcore`). Kotlin/JVM packages stay `com.guardcore.*` (hyphens are illegal in JVM packages).
- `maven-publish` + `signing` with sources/javadoc jars and the Portal-required POM (MIT license, developers, scm); repositories move to `settings.gradle.kts`; `GUARD_CORE_USE_COMPOSITE` env toggle (default composite ON; `false` = resolve the engine from mavenLocal, then Maven Central, the release-workflow mode).
- `.github/workflows/release.yml`: engine-artifact pre-flight on Maven Central (engine before adapters), tests at tag, tag-consistency audit (bare vX.Y.z, tag equals the in-file version, SNAPSHOT flip enforced), publish job with per-artifact repo1 existence check and a Central Portal deployment. See docs/release.md.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ Published on Maven Central:

```kotlin
dependencies {
implementation("com.guard-core:spring-boot-guard:1.2.0")
implementation("com.guard-core:spring-boot-guard:1.3.0")
}
```

Expand Down
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ plugins {
// standard practice for hyphenated domains.
group = "com.guard-core"

version = "1.2.0"
version = "1.3.0"

// Section 14.3 lockfile analog: every configuration resolves against the
// committed gradle.lockfile. A dependency change without
Expand Down
2 changes: 1 addition & 1 deletion docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ pipeline runs per request, error responses come byte-exact from the facade
response factory, and the `guard.*` property surface reaches every
`SecurityConfig` field.

- **Status**: 1.2.0, released
- **Status**: 1.3.0, released
- **Engine**: `com.guard-core:guard-core:4.4.0` (built from source through a
composite build, see [Installation](installation.md))
- **Parity**: the engine's
Expand Down
2 changes: 1 addition & 1 deletion docs/installation.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Published on Maven Central:

```kotlin
dependencies {
implementation("com.guard-core:spring-boot-guard:1.2.0")
implementation("com.guard-core:spring-boot-guard:1.3.0")
}
```

Expand Down
Loading