Repository navigation
Prevent cross-domain organisation address collisions - #132
Merged
Merged
Conversation
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.
A new organisation could reuse an existing organisation label in another founding domain, making that organisation's product hostname ambiguous and unavailable. UOA now admits new and changed labels atomically in one global namespace.
The migration preserves all existing organisations. Unique labels keep their owner; existing duplicate labels remain blocked without choosing an owner or changing an address. Tenant callers can query occupancy without reading another tenant's identity. Automatic personal-organisation creation retries a concurrent claim through its existing suffix allocator.
Disabled and retained deleted organisations keep their claims. Explicit renames and physical deletion preserve the existing release rules. No UI, native app, customer-specific rename, or membership change is included.
Validation on Maxis:
CI passed: workspace build, 2,718 API unit tests, 940 PostgreSQL integration tests, and the high/critical dependency audit. Four existing tests remain skipped (three unit, one integration). Merged and deployed by Deploy. Revision
uoa-auth-00347-98bis healthy and serving 100% of production traffic. A read-only production check confirmed the migration and trigger are installed, all 17 organisations have the expected occupancy (15 owned labels and one blocked legacy duplicate label), no current claims are missing or wrong, and both excluded legacy addresses are unchanged.Known pre-existing limit outside this change: the retained-deletion workflow can still collide with a same-domain preclaim of its deterministic deletion placeholder through the old domain/slug constraint. This change prevents the new global guard from adding a cross-domain version of that blocker.