Skip to content

docs(roadmap): plan DTO-first binding and PATCH semantics - #25

Merged
kazemek merged 2 commits into
mainfrom
docs/dto-first-patch-roadmap
Jul 30, 2026
Merged

kazemek merged 2 commits into
mainfrom
docs/dto-first-patch-roadmap

Conversation

@kazemek

@kazemek kazemek commented Jul 30, 2026 •

Copy link
Copy Markdown
Collaborator

Make flat DTO reads, typed envelopes, and presence-aware update commands explicit product goals so Jackson and Spring users can work without core documents while preserving document-first validation and graph-free binding.

Summary by CodeRabbit

  • Documentation
    • Expanded the roadmap with detailed JSON:API v1.1 milestones, including validation, Jackson 2/3 parity planning, typed envelopes, sparse fieldsets, flat DTO reads, and presence-aware PATCH binding.
    • Updated/added phase documentation (e.g., Phase 1.3, 2.1/2.4/2.5/2.6/2.7/2.8/2.9/2.10/2.11/2.12/2.13/2.14/2.15/2.16/2.17) and refined the milestone index and dependency order.
    • Refreshed README module registry and updated architecture/design and conformance/vision guidance, including a clarified WebFlux evaluation plan.

Make flat DTO reads, typed envelopes, and presence-aware update commands
explicit product goals so Jackson and Spring users can work without core
documents while preserving document-first validation and graph-free binding.
@coderabbitai

coderabbitai Bot commented Jul 30, 2026 •

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: a33df776-ad11-41a8-a412-146cabf70de3

📥 Commits

Reviewing files that changed from the base of the PR and between c1d0ab8 and c7db900.

📒 Files selected for processing (9)
  • .agentWork/milestones/phase-2-3-compound-serialization.md
  • .agentWork/milestones/phase-2-5-json-schema-cross-check.md
  • .agentWork/milestones/phase-2-6-jackson2-document-writer.md
  • .agentWork/milestones/phase-2-7-jackson2-document-reader.md
  • .agentWork/milestones/phase-3-2-spring-webmvc.md
  • .agentWork/milestones/phase-3-3-spring-webmvc-dto-binding.md
  • .agentWork/milestones/phase-4-1-conformance-and-hardening.md
  • .agentWork/milestones/phase-4-2-stable-release.md
  • README.md
🚧 Files skipped from review as they are similar to previous changes (7)
  • .agentWork/milestones/phase-3-3-spring-webmvc-dto-binding.md
  • README.md
  • .agentWork/milestones/phase-4-1-conformance-and-hardening.md
  • .agentWork/milestones/phase-4-2-stable-release.md
  • .agentWork/milestones/phase-2-3-compound-serialization.md
  • .agentWork/milestones/phase-3-2-spring-webmvc.md
  • .agentWork/milestones/phase-2-6-jackson2-document-writer.md

📝 Walkthrough

Walkthrough

The PR expands milestone planning and architecture documentation for document-first JSON:API processing, split Jackson 2/3 adapters, typed envelopes, presence-aware PATCH binding, Spring integration, conformance, and release requirements.

Changes

Roadmap and architecture boundaries

Layer / File(s) Summary
Milestone roadmap and Phase 1.3 validation
.agentWork/milestones/README.md, .agentWork/milestones/phase-1-3-update-request-validation.md
The roadmap adds Phase 1.3, granular Jackson 3/2 phases, and Phase 3.4; the new Phase 1.3 document defines update-request validation and presence preservation.
Core document and PATCH contracts
docs/adr/006-read-boundary.md, docs/adr/011-flat-dto-read-binding.md, docs/adr/012-resource-patch-binding.md
ADRs define document-first DTO reads, separately registered included-resource binding, and immutable presence-aware PATCH commands.
Jackson 3 milestones
.agentWork/milestones/phase-2-1-*, .agentWork/milestones/phase-2-2-*, .agentWork/milestones/phase-2-3-*, .agentWork/milestones/phase-2-4-*, .agentWork/milestones/phase-2-5-*, .agentWork/milestones/phase-2-8-*, .agentWork/milestones/phase-2-9-*, .agentWork/milestones/phase-2-10-*, .agentWork/milestones/phase-2-11-*
Jackson 3 planning is split into writer, reader, mapping, inclusion, fieldset, envelope, and PATCH-binding milestones with explicit boundaries and validation requirements.
Jackson 2 parity milestones
.agentWork/milestones/phase-2-6-* through .agentWork/milestones/phase-2-7-*, .agentWork/milestones/phase-2-12-* through .agentWork/milestones/phase-2-17-*
Jackson 2 milestones define isolated ports of the writer, reader, mapping, compound serialization, sparse fieldsets, flat DTO reader, typed envelope, and PATCH binding contracts.
Spring adapter planning
.agentWork/milestones/phase-3-2-spring-webmvc.md, .agentWork/milestones/phase-3-3-spring-webmvc-dto-binding.md, .agentWork/milestones/phase-3-4-webflux-evaluation.md
WebMVC planning covers media types, query arguments, safe error rendering, and DTO binding; WebFlux is moved to a separate evaluation phase.
Governance, conformance, and release documentation
README.md, docs/adr/007-module-boundaries.md, docs/adr/010-architectural-tests.md, docs/conformance.md, docs/vision.md, .agentWork/milestones/phase-4-*
Documentation updates split Jackson artifacts, formalize dependency allowlists, expand deferred conformance coverage, and detail hardening and stable-release checks.

Estimated code review effort: 3 (Moderate) | ~25 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the roadmap focus on DTO-first binding and presence-aware PATCH semantics.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/dto-first-patch-roadmap

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 8

🧹 Nitpick comments (1)
.agentWork/milestones/phase-2-5-json-schema-cross-check.md (1)

17-17: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Pin and verify the exact schema-validator version.

3.x is too broad for the Jackson 3/Draft 2020-12 compatibility and dependency-verification requirements. Record the exact tested version and confirm its transitive dependencies remain test-scoped.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.agentWork/milestones/phase-2-5-json-schema-cross-check.md at line 17,
Update the dependency entry in the phase-2-5 schema cross-check documentation to
record the exact tested com.networknt:json-schema-validator version instead of
the broad 3.x range. Confirm that its transitive dependencies remain test-scoped
and regenerate the dependency-verification metadata for the pinned version.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.agentWork/milestones/phase-2-3-compound-serialization.md:
- Around line 47-49: Clarify the “no JPA initialization” boundary in the
serialization scope: explicitly state whether relationship/property access may
trigger lazy loading and database queries, or require an access-safe,
already-loaded graph. Update the “JPA initialization” and related ORM exclusions
so the permitted behavior is unambiguous.

In @.agentWork/milestones/phase-2-5-json-schema-cross-check.md:
- Line 50: Update the Phase 2.1 acceptance criterion to hyphenate
“usage-specific” before “draft schema,” leaving the rest of the criterion
unchanged.

In @.agentWork/milestones/phase-2-6-jackson2-document-writer.md:
- Line 37: Correct the package wildcard in the Jackson 2 production-import
statement from the invalid double-dot form to the valid single-asterisk form,
preserving the existing reference to the com.fasterxml.jackson package and
dependency context.
- Around line 14-16: In
.agentWork/milestones/phase-2-6-jackson2-document-writer.md lines 14-16 and
46-52, define the exact maintained Jackson 2 compatibility version/range and the
Gradle compatibility task, then use those named terms consistently in Phase 2.6.
In .agentWork/milestones/phase-2-7-jackson2-document-reader.md lines 44-46,
reference the same baseline and task rather than introducing separate
compatibility wording.

In @.agentWork/milestones/phase-3-2-spring-webmvc.md:
- Around line 70-74: Resolve the contradictory Sonar-token acceptance criteria
by choosing one shared CI policy and applying it consistently: either skip Sonar
analysis and mark the quality gate not applicable when SONAR_TOKEN is absent, or
fail validation until the token is available. Update the Sonar validation
sections in .agentWork/milestones/phase-3-2-spring-webmvc.md (lines 70-74),
.agentWork/milestones/phase-3-3-spring-webmvc-dto-binding.md (lines 81-85),
.agentWork/milestones/phase-4-1-conformance-and-hardening.md (lines 33-36), and
.agentWork/milestones/phase-4-2-stable-release.md (lines 32-34) to state the
same policy.

In @.agentWork/milestones/phase-3-3-spring-webmvc-dto-binding.md:
- Line 4: Add Phase 2.9 to the Dependencies list in the phase-3-3 milestone
document, preserving the existing dependency entries and ordering so the
milestone requires the Jackson 3 flat DTO reader before scheduling.

In @.agentWork/milestones/phase-4-1-conformance-and-hardening.md:
- Around line 29-30: Update the security-sensitive defaults criterion in the
milestone document to separate Jackson-major coverage from WebMVC coverage,
reflecting ADR-007: require testing across both Jackson majors independently,
and require WebMVC-specific testing only for its supported Jackson 3
integration.

In `@README.md`:
- Around line 5-9: Expand the root README to include a package/module registry
covering jsonapi-java-spring-webflux as a separately scoped future module, with
explicit status for every entry. Add the required usage guidance or explicit
no-entry-point statement, non-goals, and agent notes, while preserving the
existing JSON:API scope and compliance disclaimer.

---

Nitpick comments:
In @.agentWork/milestones/phase-2-5-json-schema-cross-check.md:
- Line 17: Update the dependency entry in the phase-2-5 schema cross-check
documentation to record the exact tested com.networknt:json-schema-validator
version instead of the broad 3.x range. Confirm that its transitive dependencies
remain test-scoped and regenerate the dependency-verification metadata for the
pinned version.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: d6c897e7-6ce9-4a60-9897-02f807f24f87

📥 Commits

Reviewing files that changed from the base of the PR and between f96e24d and c1d0ab8.

📒 Files selected for processing (33)
  • .agentWork/milestones/README.md
  • .agentWork/milestones/phase-1-3-update-request-validation.md
  • .agentWork/milestones/phase-2-1-jackson-document-codec.md
  • .agentWork/milestones/phase-2-10-jackson3-domain-envelope.md
  • .agentWork/milestones/phase-2-11-jackson3-patch-binding.md
  • .agentWork/milestones/phase-2-12-jackson2-domain-resource-mapping.md
  • .agentWork/milestones/phase-2-13-jackson2-compound-serialization.md
  • .agentWork/milestones/phase-2-14-jackson2-sparse-fieldsets.md
  • .agentWork/milestones/phase-2-15-jackson2-flat-dto-reader.md
  • .agentWork/milestones/phase-2-16-jackson2-domain-envelope.md
  • .agentWork/milestones/phase-2-17-jackson2-patch-binding.md
  • .agentWork/milestones/phase-2-2-domain-resource-mapping.md
  • .agentWork/milestones/phase-2-3-compound-serialization.md
  • .agentWork/milestones/phase-2-4-document-reads.md
  • .agentWork/milestones/phase-2-5-json-schema-cross-check.md
  • .agentWork/milestones/phase-2-6-jackson2-document-writer.md
  • .agentWork/milestones/phase-2-7-jackson2-document-reader.md
  • .agentWork/milestones/phase-2-8-sparse-fieldsets.md
  • .agentWork/milestones/phase-2-9-jackson3-flat-dto-reader.md
  • .agentWork/milestones/phase-3-2-spring-webmvc.md
  • .agentWork/milestones/phase-3-3-spring-webmvc-dto-binding.md
  • .agentWork/milestones/phase-3-3-webflux-evaluation.md
  • .agentWork/milestones/phase-3-4-webflux-evaluation.md
  • .agentWork/milestones/phase-4-1-conformance-and-hardening.md
  • .agentWork/milestones/phase-4-2-stable-release.md
  • README.md
  • docs/adr/006-read-boundary.md
  • docs/adr/007-module-boundaries.md
  • docs/adr/010-architectural-tests.md
  • docs/adr/011-flat-dto-read-binding.md
  • docs/adr/012-resource-patch-binding.md
  • docs/conformance.md
  • docs/vision.md
💤 Files with no reviewable changes (1)
  • .agentWork/milestones/phase-3-3-webflux-evaluation.md

Comment thread .agentWork/milestones/phase-2-3-compound-serialization.md Outdated
Comment thread .agentWork/milestones/phase-2-5-json-schema-cross-check.md
Comment thread .agentWork/milestones/phase-2-6-jackson2-document-writer.md Outdated
Comment thread .agentWork/milestones/phase-2-6-jackson2-document-writer.md Outdated
Comment thread .agentWork/milestones/phase-3-2-spring-webmvc.md Outdated
Comment thread .agentWork/milestones/phase-3-3-spring-webmvc-dto-binding.md Outdated
Comment thread .agentWork/milestones/phase-4-1-conformance-and-hardening.md Outdated
Comment thread README.md
Resolve review gaps so compatibility, ORM access, CI quality gates, and module
availability are explicit before implementation proceeds.
@sonarqubecloud

Copy link
Copy Markdown

@kazemek
kazemek merged commit 71ff268 into main Jul 30, 2026
3 checks passed
@kazemek
kazemek deleted the docs/dto-first-patch-roadmap branch July 30, 2026 21:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant