Repository navigation
Add Secret-authorized tenant provisioning API - #64
Merged
sciabarracom merged 2 commits intoOct 22, 2026
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.
External provisioning systems currently have no dedicated create-user API. This adds
POST /system/api/v1/users, authorized by an externally managed Kubernetes Secret, to create an OPS tenant and its routes through the existing operator flow.The request accepts
user,password,emailand optional comma-separatedservices(defaultall, meaning tenant services already enabled in the cluster). Success returns202 Acceptedwith provisioning pending; existing, blocked, deleting or retained names return409without updating the account. No credentials are returned.Authorization and lifecycle
openserverless/openserverless-user-provisioning-tokenOpaque Secret and a Bearer token, separate from tenant AUTH and SSO credentials. Normal startup and other endpoints do not require the Secret.503withRetry-After: 1; already authorized requests may complete.Includes scoped optional RBAC, nginx/Traefik route construction, OpenAPI documentation and an operator guide in
docs/USER_PROVISIONING.md. Existing login/SSO handlers, builder behavior, Dockerfile and release workflows are unchanged. The PR is based on current Apache0.9.0(bab3543); it excludes personal Advanced upgrades and image publication workflows.Validation
0.9.0source: 84 tests passed, using the candidate image's installed dependency environment, offline with the source mounted read-only. Includes existing legacy/SSO/builder tests and provisioning validation, conflicts, concurrency, secret lifecycle, namespace retention and redaction tests.git diff --checkpassed. Live MinIO, live nginx and multi-replica saturation were not tested; route contracts are covered by unit tests.The published personal candidate includes additional Advanced code and is not an image of this isolated Apache PR. No cluster deployment or Apache image publication is performed by this PR.