Skip to content

fix(core): make identity creation-only and version updates internal - #269

Open
philipgreat wants to merge 2 commits into
mainfrom
entity-id-version-lifecycle
Open

philipgreat wants to merge 2 commits into
mainfrom
entity-id-version-lifecycle

Conversation

@philipgreat

@philipgreat philipgreat commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

Application code could change entity identity and version through inherited BaseEntity.updateId/updateVersion, and identity could also be rewritten through E expressions. Make these ordinary update methods package-private, remove the expression identity writer, and add staged ExecutableRequest.newEntityWithId(id, context) for validated creation-time identity input. The ID allocation floor is reserved through InternalIdGenerationService before trusted context initialization; missing/unsupported reservation fails closed. The ID is installed before initializers; it cannot initialize an already identified entity.

Keep framework hydration/readback and the existing optimistic update/delete version transitions. Update framework fixtures to hydrate system fields through their internal path. This is paired with https://github.com/teaql/teaql-code-gen/pull/302; callers should migrate to Q creation or query-loaded entities. No public compatibility aliases are retained.

Validation: all 282 Java core tests passed; 29 runtime and 8 Jackson tests passed through the dependent reactor, including TFP test compilation. An external-package javac probe accepts the new creation API and rejects calls to both ordinary system updaters. Diff whitespace checks pass. No release artifacts were published.

This branch has not been deployed

No deployments
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