feat(resourcemanager): Unify organization model and onboarding gate#673
Closed
mattdjenkinson wants to merge 0 commit into
Closed
feat(resourcemanager): Unify organization model and onboarding gate#673mattdjenkinson wants to merge 0 commit into
mattdjenkinson wants to merge 0 commit into
Conversation
Contributor
|
🤖 I automatically added missing newlines at the end of 6 file(s) in this PR. All files should now end with a newline character as per coding standards. |
3 tasks
28c3dd8 to
e5b58cc
Compare
5 tasks
Contributor
Author
|
Superseded by #675 — branch was restored after an accidental reset; GitHub would not reopen this PR because it was closed with an empty diff. |
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.
Summary
Personal and Standard org types split the same resource into two code paths and locked people into workspaces they could not grow out of. This change removes
spec.type, adds org-levelcontactInfo, and introduces a single onboarding gate the API can enforce.Portal clients create orgs with
generateName: org-and a display name only. The mutating webhook defaults that prefix for non-admin callers; the validating webhook rejects user-chosen slugs. An org is onboarding-complete when contact info (email and name), a billing account in the org namespace, andDefaultPaymentMethodReadyon that account are all present. The organization controller writes that outcome tostatus.conditions[OnboardingComplete].Related enhancement: datum-cloud/enhancements#770. Portal UI work is tracked separately and is not in this PR.
Test plan
go build ./...go test ./internal/controllers/resourcemanager/... ./internal/webhooks/resourcemanager/...spec.typegenerateName: org-assigns an opaque name and owner membershipOnboardingCompleteflips to True when contact info and billing payment method are readyBreaking changes
Organization.spec.typeis removed. Clients must stop sending or reading it.OrganizationMembership.status.organization.typeis removed;contactEmailis cached instead.metadata.generateNamewith prefixorg-.Notes for reviewers
go.miloapis.com/billingfor typed reads in the onboarding reconciler.docs/runbooks/unified-organizations-migration.md.Related to #636