Skip to content

Releases

Compound Documents rework: in-process includes, finer-grained config, stronger security and descriptive meta

Choose a tag to compare

@MoonWorm MoonWorm released this 02 Oct 21:35

#118 Add page for projects that are using the framework already
#203 OAS: Add Swagger example in addition to Redoc
#208 CD: Fetch only what was explicitly requested, not the entire tree
#210 CD: same-app includes are fetched from a host taken from the client's Host header
#211 CD: primary resources are repeated in included
#212 CD: include requests break on unencoded query parameters
#213 CD: consistent handling of failed includes via errorStrategy and the shared error handler registry
#214 CD: say which included resources are missing, and why, in partial responses under errorStrategy: IGNORE
#215 CD: capture the primary response reliably, and enforce include limits per the spec instead of cutting silently
#216 CD: Return 400 for include paths with unknown relationship names, at any position in the path, in core and the CD plugin
#217 CD: forward only safe headers, send credentials only to trusted services, and put all per-type settings under mapping
#218 CD and OAS: take configuration from the registered plugin and JsonApi4j instead of servlet-context copies, plus small cleanups
#220 CD: resolve same-app includes in-process, with per-type transport (IN_PROCESS | HTTP)
#221 Use JSON:API member name constants everywhere possible

More info: #222

OpenAPI Plugin rework: a richer spec, honest schemas and fail-fast diagnostics

Choose a tag to compare

@MoonWorm MoonWorm released this 16 Sep 20:38

#141 Setup Dependabot
#157 Add Quarkus Native Image tests + bugfixes
#159 OAS: add golden spec test
#160 OAS: various fixes and improvements
#161 OAS: various fixes and improvements + Overall Plugins Bootstrap robustness
#162 Validate jsonapi4j configuration at startup
#163 Introduce PluginRegistry instead of List
#164 Collapse OAS customizer signatures onto a single JsonApi4j reference
#165 Spring Boot ignores jsonapi4j.oas.oasRootPath
#166 CD: Give the compound-docs cache defaults a single home
#167 OAS: Refactor OAS Customizers - squash declarations into one line; preserve order by using ordered data structures
#168 Close the loose ends from the config/registry refactor
#170 Read state from JsonApi4j instead of re-deriving it
#181 Make the Framework compatible with Spring Boot 3 and 4
#183 Quarkus compatibility matrix
#184 Explore and define JDK, Spring Boot & Quarkus supported version floors
#188 OAS: deprecate customHeaders property, introduce customizers, fix default available error docs examples
#189 OAS: introduce 'filter' attribute for OasOperationInfo annotation
#190 OAS: remove custom params for {id} path params. Make them part of OasResourceInfo
#191 OAS: restouce types as enums
#192 OAS: refer responses and fields instead of duplicating them
#193 OAS: add 'deprecated' attribute, merge array query params
#194 OAS: derive document-level security so no operation is documented as public, extract access control and sparse fieldsets into their own customizers, and reject colliding schema names
#195 OAS: publish what access control enforces — required scopes as security requirements, anonymous operations as public, 403 only where a requirement exists — and drop the unsound NONE_OF scope mode
#196 OAS: introduce OasDiagnostics
#197 OAS: declared scopes are set to all known grant flows instead of being flow - specific
#198 OAS: SF and AC plugin must affect 'required' fields + add conditional descriptions
#199 OAS: introduce more precise PaginationLinksObject and PaginationMetaObject that carries Pagination-related info
#200 OAS: bunch of small enhancements
#201 OAS: Golden Copy in docs/

More info: #202

Access Control rework: entitlements, access policies and anonymization reports

Choose a tag to compare

@MoonWorm MoonWorm released this 28 Aug 15:00

#142 Enhance Principal Resolving logic
#143 Rething AccessTiers -> Entitlements
#144 Principal attributes - ABAC policy
#145 AC: align scopes with recent ABAC and Entitlements changes
#146 AC: cache annotation-derived access control models per class
#147 AC: copy attributes objects when hiding fields instead of mutating them
#148 SF: copy attributes objects in the sparse fieldsets plugin instead of mutating them
#149 AC: resolve a shadowed field name to the most-derived declaration instead of the inherited one
#150 SF: Sparse fieldsets cannot exclude inherited fields
#151 AC: Add an opt-in mode that rejects access control which cannot take effect
#152 AC: Report which requirement denied a request, and cache reflection metadata per class
#153 AC: Access control is not enforced inside collections or behind general field declarations
#154 SF: Sparse fieldsets cannot reach fields inside collections, and path existence depends on the data
#155 AC: working native image, spec-mandated status codes, and a sample that follows the spec
#156 AC: tell a caller that something was hidden from them
#157 Add Quarkus Native Image tests + bugfixes

More info: #158

JsonApi4j: AI compatibility and Meta API

Choose a tag to compare

@MoonWorm MoonWorm released this 10 Jul 16:23

Make JsonApi4j AI native for contributors and consumers

Choose a tag to compare

@MoonWorm MoonWorm released this 26 Jun 11:00

AC: fix how 'OutboundAccessControlForCustomClass' treats Java enums + self-ref guard

Choose a tag to compare

@MoonWorm MoonWorm released this 13 Jun 17:36

Hotfix: ReflectionUtils traversal issue that was failing for some Java types e.g. java.time.LocalDate

Choose a tag to compare

@MoonWorm MoonWorm released this 08 Jun 17:36

JSON:API "prev", "first", "last" links support; better Dev Api for Plugin System

Choose a tag to compare

@MoonWorm MoonWorm released this 31 May 12:28

JsonApi4j Validation Fluent API - Rich Assertions

Choose a tag to compare

@MoonWorm MoonWorm released this 27 May 08:10

JsonApi4j Request Validation API

Choose a tag to compare

@MoonWorm MoonWorm released this 23 May 15:01