create: keep ids server-owned - #70
Draft
aberoham wants to merge 2 commits into
Draft
Conversation
aberoham
force-pushed
the
reject-create-ids
branch
from
August 30, 2026 14:11
9f047aa to
481cc61
Compare
Contributor
|
I'm confined to a phone screen today, but if you checkout the subproject '.release" in the validate repo, and follow the README steps, it'll create a release PR which I can merge and will auto-release. |
aberoham
force-pushed
the
reject-create-ids
branch
from
August 31, 2026 14:46
481cc61 to
64a7d8f
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
NicTool/validate#34 forbids
idon create. Every HTTP POST now leaves identifier allocation to the store. mysql uses its auto-increment columns. The json and toml stores serialize create allocation per file in the API process. A high-water id prevents reuse after the highest row is deleted. Allocation fails when the backend id type is exhausted.The branch is rebased over #69 and #71. Internal creates with explicit ids keep #69's collision rejection. HTTP creates carrying an id are refused for group, nameserver, permission, and user. Zone and zone record creates refuse it too. Creates without an id still allocate one. PUT keeps using the id in the route.
The file-store regression runs twenty concurrent group creates on both json and toml. Each gets ids 1 through 20. After id 20 is destroyed, the next create gets 21.
validate#34 is merged but not released. CI installs its merge commit,
4503776, from source. After the release, that temporary source pin can be dropped and the declared dependency bumped. The shared coverage workflow cannot take the source pin, so coverage remains red until then.This completes the final unfinished API #6 item about caller-controlled auto-increment fields. Its permissions checkbox is still unticked, but #57 already implemented it.