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.
Adds a small authenticated Swift/Vapor 4/Fluent API where seeded team administrators issue recipient-bound invitation secrets, recipients accept once, and administrators revoke pending invitations. Acceptance and membership creation commit together; matching consumed retries return the original membership even after expiry. Row locks arbitrate accept/revoke, while a unique membership constraint and deferred composite FK enforce consistency.
Includes pinned stable packages, native Linux ARM64 build/unit CI, separate owner/migrator/runtime roles, strict bounded DTOs, scoped keyset lists and a setup helper that selects exactly one verified trust anchor from the authenticated Cloud CA bundle. The runtime retains full CA/name verification and SNI; no email delivery, signup or published article is included.
Validated on ClickHouse Managed Postgres 18.6: clean migrations/reversal/reseed; 8 competing accepts one membership; distinct invitation 201/409 race with pending loser; accept/revoke 201/409; forced failure after state update rolls back both writes; pre-expiry request waits across a 3s lock and receives 410; independent unique/composite FK/role controls; actual wrong-root and wrong-hostname driver failures; real runtime-only process restart with original membership replay. Fresh native source resolves/builds and passes 4 unit tests without database credentials. Test Cloud service has been deleted and confirmed absent.