Skip to content

feat(storage): xRegistry core data model extensions (Phase 1)#8097

Draft
carlesarnal wants to merge 2 commits into
Apicurio:mainfrom
carlesarnal:issue-8079
Draft

feat(storage): xRegistry core data model extensions (Phase 1)#8097
carlesarnal wants to merge 2 commits into
Apicurio:mainfrom
carlesarnal:issue-8079

Conversation

@carlesarnal

Copy link
Copy Markdown
Member

Summary

Implements Phase 1 (#7446) of the xRegistry specification support epic (#7445). Extends the storage layer and data model with foundational xRegistry concepts.

  • Add epoch field (modification counter for optimistic concurrency) to groups, artifacts, and versions — auto-incremented on every metadata update
  • Add ancestor field to versions for lineage tracking
  • Add icon, documentation URL fields to groups, artifacts, and versions
  • Add contenttype field to versions
  • Add ResourceMetaDto for xRegistry Meta entity, stored as artifact labels with xregistry.meta.* prefix
  • Add DeprecationInfoDto for structured deprecation info
  • SQL schema migration 106 for all 4 database dialects (PostgreSQL, MySQL, MSSQL, H2)

Test plan

  • New XRegistryDataModelTest with 7 tests covering:
    • Epoch starts at 0 on entity creation (group, artifact, version)
    • Epoch increments by 1 on metadata update (group, artifact)
    • ResourceMeta CRUD via labels (create, read, update, delete)
    • DeprecationInfo round-trip (set and read back)
  • DefaultRegistryStorageTest (27 existing tests) — no regressions
  • Checkstyle passes
  • CI green

Closes #7446

@github-actions github-actions Bot added the lifecycle/wip Accepted, author working label May 27, 2026
@github-actions

Copy link
Copy Markdown

PR auto-accepted (trusted author). Smoke tests will run on each push.

When ready, use /ready or mark as non-draft to run the full test suite.

A maintainer can use /skip-review to skip the review requirement for small changes, or /auto-merge to merge automatically once approved and tested.

Note (fork PR): Review label updates may not apply automatically. A maintainer can use /retry after reviewing to update the labels.

Add foundational storage layer changes for xRegistry specification
support (Phase 1). Extends the data model with epoch-based optimistic
concurrency and resource metadata stored as artifact labels.

- Add epoch column (auto-incremented on modification) to groups,
  artifacts, and versions (SQL migration 108)
- Add ResourceMetaDto projected from artifact labels with
  xregistry.meta.* prefix (compatibility, deprecation, etc.)
- Add DeprecationInfoDto for structured deprecation info
- Default interface methods for resource meta CRUD on RegistryStorage
- Unit tests for epoch behavior and resource meta operations

Signed-off-by: Carles Arnal <carlesarnal92@gmail.com>
@sonarqubecloud

Copy link
Copy Markdown

@github-actions github-actions Bot added the lifecycle/waiting-on-author Blocked on contributor action label May 27, 2026
@github-actions github-actions Bot added the lifecycle/stale No activity for 7+ days label Jun 3, 2026
@github-actions

github-actions Bot commented Jun 3, 2026

Copy link
Copy Markdown

This PR has been inactive for 7 days. @carlesarnal, please update or comment
to keep it open. It will be closed in 7 days if no activity occurs.
Use /unstale to remove this label.

@github-actions github-actions Bot removed the lifecycle/stale No activity for 7+ days label Jun 3, 2026
@github-actions github-actions Bot added the lifecycle/stale No activity for 7+ days label Jun 11, 2026
@github-actions

Copy link
Copy Markdown

This PR has been inactive for 7 days. @carlesarnal, please update or comment
to keep it open. It will be closed in 7 days if no activity occurs.
Use /unstale to remove this label.

@github-actions github-actions Bot removed the lifecycle/stale No activity for 7+ days label Jun 11, 2026
@github-actions github-actions Bot added the lifecycle/stale No activity for 7+ days label Jun 18, 2026
@github-actions

Copy link
Copy Markdown

This PR has been inactive for 7 days. @carlesarnal, please update or comment
to keep it open. It will be closed in 7 days if no activity occurs.
Use /unstale to remove this label.

@github-actions github-actions Bot removed the lifecycle/stale No activity for 7+ days label Jun 18, 2026
@github-actions

Copy link
Copy Markdown

This PR has been inactive for 7 days. @carlesarnal, please update or comment
to keep it open. It will be closed in 7 days if no activity occurs.
Use /unstale to remove this label.

@github-actions github-actions Bot added lifecycle/stale No activity for 7+ days and removed lifecycle/stale No activity for 7+ days labels Jun 26, 2026
@github-actions github-actions Bot added the lifecycle/stale No activity for 7+ days label Jul 3, 2026
@github-actions

github-actions Bot commented Jul 3, 2026

Copy link
Copy Markdown

This PR has been inactive for 7 days. @carlesarnal, please update or comment
to keep it open. It will be closed in 7 days if no activity occurs.
Use /unstale to remove this label.

@github-actions github-actions Bot removed the lifecycle/stale No activity for 7+ days label Jul 3, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lifecycle/waiting-on-author Blocked on contributor action lifecycle/wip Accepted, author working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

xRegistry: Core data model extensions (epoch, Meta entity, registry config)

1 participant