@@ -20,13 +20,13 @@ hosted on a subdomain — with no second login prompt.
2020All endpoints referenced here are documented in the
2121[ KubeDB Platform API Reference] ( ../../../api/ ) . The most relevant pages are:
2222
23- - [ Administrative-Org Admin] ( ../../../api/administration/admin-org.md ) — the admin user
23+ - [ Administrative-Org Admin] ( ../../../api/administration/admin-org/ ) — the admin user
2424 APIs used to provision and maintain the mirrored user.
25- - [ Public & Basic-auth User APIs] ( ../../../api/users-settings/public-user-apis.md ) — the
25+ - [ Public & Basic-auth User APIs] ( ../../../api/users-settings/public-user-apis/ ) — the
2626 public ` POST /user/signin ` endpoint that establishes the browser session.
27- - [ Authenticated User APIs] ( ../../../api/users-settings/authenticated-user.md ) — `GET
27+ - [ Authenticated User APIs] ( ../../../api/users-settings/authenticated-user/ ) — `GET
2828 /user/signout` and other session-scoped calls.
29- - [ Client Organizations] ( ../../../api/client-organizations/overview.md ) — the
29+ - [ Client Organizations] ( ../../../api/client-organizations/overview/ ) — the
3030 managed-service-provider model for granting each user scoped access to clusters.
3131
3232## 1. Goal
@@ -67,7 +67,7 @@ Because both consoles share the registrable domain `acme.com`, the browser treat
6767 backend — never shipped to a browser. It is sent as an ` Authorization: token <TOKEN> `
6868 header and authorizes the ` /api/v1/admin/* ` calls (which require the
6969 ` admin_of_administrative_org ` relation). See
70- [ Administrative-Org Admin] ( ../../../api/administration/admin-org.md ) .
70+ [ Administrative-Org Admin] ( ../../../api/administration/admin-org/ ) .
7171- The administrative organization slug (e.g. ` appscode ` ) to pass as the ` ?org= ` context on
7272 admin calls.
7373- TLS on both hosts. All calls below assume ` https:// ` .
@@ -96,7 +96,7 @@ used only for the server-side handoff in Phase 2; the end user never learns it.
9696### 3.1 Create the user
9797
9898` POST /api/v1/admin/users?org=<slug> ` — body is a ` CreateUserOption `
99- ([ reference] ( ../../../api/administration/admin-org.md ) ):
99+ ([ reference] ( ../../../api/administration/admin-org/ ) ):
100100
101101``` bash
102102curl -X POST ' https://db.acme.com/api/v1/admin/users?org=appscode' \
@@ -128,7 +128,7 @@ curl -X POST 'https://db.acme.com/api/v1/admin/users?org=appscode' \
128128
129129When the user edits their name/email in the CSP console, mirror it with `POST
130130/api/v1/admin/users/{username}/update?org=<slug >` — body is a ` Profile`
131- ([ reference] ( ../../../api/administration/admin-org.md ) ):
131+ ([ reference] ( ../../../api/administration/admin-org/ ) ):
132132
133133``` bash
134134curl -X POST ' https://db.acme.com/api/v1/admin/users/acme-user-42/update?org=appscode' \
@@ -149,7 +149,7 @@ curl -X POST 'https://db.acme.com/api/v1/admin/users/acme-user-42/update?org=app
149149If the CSP rotates the stored KubeDB credential, push the new value with `POST
150150/api/v1/admin/users/{username}/change-password?org=<slug >` — body is an
151151` UpdatePasswordParams `
152- ([ reference] ( ../../../api/administration/admin-org.md ) ):
152+ ([ reference] ( ../../../api/administration/admin-org/ ) ):
153153
154154``` bash
155155curl -X POST ' https://db.acme.com/api/v1/admin/users/acme-user-42/change-password?org=appscode' \
@@ -163,7 +163,7 @@ curl -X POST 'https://db.acme.com/api/v1/admin/users/acme-user-42/change-passwor
163163When a CSP user is disabled or deleted, revoke KubeDB access with `DELETE
164164/api/v1/admin/users/{username}?org=<slug >` (or ` PATCH` the user with ` active: false ` /
165165` prohibit_login:true ` to keep the record). See
166- [ Edit / Delete user] ( ../../../api/administration/admin-org.md ) .
166+ [ Edit / Delete user] ( ../../../api/administration/admin-org/ ) .
167167
168168![ Provisioning the mirrored user] ( ../images/csp-provisioning.svg )
169169
@@ -174,7 +174,7 @@ When a CSP user is disabled or deleted, revoke KubeDB access with `DELETE
174174The public sign-in endpoint ** ` POST /api/v1/user/signin ` ** authenticates a username +
175175password and, on success, ** sets the session, CSRF (` _csrf ` ), and NATS cookies** — the same
176176cookies the web console relies on
177- ([ reference] ( ../../../api/users-settings/public-user-apis.md ) ). The trick is
177+ ([ reference] ( ../../../api/users-settings/public-user-apis/ ) ). The trick is
178178that these cookies are obtained by the CSP backend server-to-server, then delivered to the
179179user's browser so it holds a valid ` db.acme.com ` session.
180180
@@ -264,26 +264,26 @@ Organizations** — is designed exactly for CSPs. As a site admin, the CSP:
2642641. Creates a client organization and imports spoke clusters into it —
265265 ` POST /api/v1/user/client/create` and
266266 ` POST /api/v1/user/client/{orgname}/add-cluster`
267- ([Client Org Management](../../../api/client-organizations/management.md )).
267+ ([Client Org Management](../../../api/client-organizations/management/ )).
2682682. Creates a per-cluster user with scoped permissions and (optionally) fetches a kubeconfig
269269 for them —
270270 ` POST /api/v1/clusters/{owner}/{cluster}/permission/user/create` and
271271 ` GET /api/v1/clusters/{owner}/{cluster}/permission/user/{id}/kubeconfig`
272- ([Cluster User Permissions](../../../api/client-organizations/cluster-user-permissions.md )).
272+ ([Cluster User Permissions](../../../api/client-organizations/cluster-user-permissions/ )).
273273
274274Map each CSP customer to a client organization and each mirrored user to that org' s
275275per-cluster permission set, so that when the user lands on the KubeDB console (via the
276276handoff above) they see exactly the clusters and databases they are entitled to. The
277277equivalent UI walkthrough is in the
278- [Client Organization guide](../../client-organization/create-client-organization.md ).
278+ [Client Organization guide](../../client-organization/create-client-organization/ ).
279279
280280---
281281
282282## 6. Logout
283283
284284When the user logs out of the CSP console, also terminate the KubeDB session so a shared
285285browser can' t keep the console open. Call ` GET /api/v1/user/signout` with the user' s cookies
286- and CSRF token ([reference](../../../api/users-settings/authenticated-user.md )):
286+ and CSRF token ([reference](../../../api/users-settings/authenticated-user/ )):
287287
288288```bash
289289curl -X GET ' https://db.acme.com/api/v1/user/signout' \
@@ -317,7 +317,7 @@ Explore any of these interactively in the
317317
318318- **Site-admin token** stays server-side, in a secret manager. Rotate it periodically. Its
319319 compromise means full control of every mirrored user. Generate/manage tokens via the
320- [access-token APIs](../../../api/users-settings/public-user-apis.md ).
320+ [access-token APIs](../../../api/users-settings/public-user-apis/ ).
321321- **Stored KubeDB passwords** are internal credentials: generate them randomly (high
322322 entropy), encrypt at rest, and never expose them to the browser or the end user.
323323- **Handoff ticket** must be short-lived (seconds), single-use, signed/encrypted, and bound
0 commit comments