Skip to content

Commit 0a401a3

Browse files
docs(platform): high-level API design pages (overview + per-group) (#141)
Signed-off-by: Arnob Kumar Saha <arnob@appscode.com>
1 parent 5c3892b commit 0a401a3

24 files changed

Lines changed: 964 additions & 0 deletions

File tree

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
---
2+
layout: docs
3+
menu:
4+
docsplatform_{{.version}}:
5+
identifier: api-ace-installer-overview
6+
name: Overview
7+
parent: api-ace-installer
8+
weight: 5
9+
menu_name: docsplatform_{{.version}}
10+
section_menu_id: api
11+
---
12+
13+
# ACE Installer — Overview
14+
15+
`/api/v1/ace-installer` (AppsCode-hosted only)
16+
17+
Generates and manages self-host installer bundles. Token + org context; per-action authz checks.
18+
19+
| Method | Path | Description |
20+
|--------|------|-------------|
21+
| GET | `/schema.json`, `/model.json` | Installer JSON schema / default options |
22+
| POST | `/generate` | Generate an installer |
23+
| POST | `/import` | Import an installer |
24+
| GET | `/installer-meta`, `/latest-version` | Installer metadata / latest ACE version |
25+
| GET | `/installers/` (+`/:name/`, `/:name/:id`) | List / inspect installers |
26+
| DELETE | `/installers/:name/:id` | Delete a generated installer |
27+
| POST | `/installers/:name/:id/{reconfigure,upgrade}` | Reconfigure / upgrade an installer |
28+
| GET | `/installers/:name/:id/versions` | List installer versions |
29+
| GET | `/installers/:name/:id/archives/:archiveName` | Read installer archive details |
30+
| GET | `/installers/:name/:id/model.json` | Installer options |
31+
| GET | `/deployment/marketplace/installers/:installerID/status` | Marketplace installer status |
32+
33+
## Reference pages
34+
35+
- [ACE installer](../ace-installer.md)
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
layout: docs
3+
menu:
4+
docsplatform_{{.version}}:
5+
identifier: api-ace-upgrade-overview
6+
name: Overview
7+
parent: api-ace-upgrade
8+
weight: 5
9+
menu_name: docsplatform_{{.version}}
10+
section_menu_id: api
11+
---
12+
13+
# ACE Upgrade — Overview
14+
15+
Platform and per-cluster upgrades (FluxCD-driven).
16+
17+
| Method | Path | Auth | Description |
18+
|--------|------|------|-------------|
19+
| GET/POST | `/api/v1/upgrade` | Token + org; site-admin authz (view_upgrade_history / upgrade_platform) | Platform upgrade status / trigger |
20+
| GET | `/api/v1/upgrade/{status,history,current-version}` | Token + org; site-admin authz (view_upgrade_history) | Upgrade job status, history, current version |
21+
| GET/POST | `/api/v1/clusters/:owner/:cluster/upgrade` | Cluster assignment + runtime client | Imported-cluster upgrade status / trigger |
22+
| GET | `/api/v1/clusters/:owner/:cluster/upgrade/{history,current-version,latest-version}` | Cluster assignment + runtime client | Upgrade info |
23+
| GET/POST | `/api/v1/clusters/:owner/:cluster/spoke/upgrade` (+`/history`) | Cluster assignment + runtime client | Spoke-cluster upgrade status / trigger / history |
24+
25+
## Reference pages
26+
27+
- [Platform upgrade](../platform-upgrade.md)
28+
- [Cluster upgrade](../cluster-upgrade.md)
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
---
2+
layout: docs
3+
menu:
4+
docsplatform_{{.version}}:
5+
identifier: api-administration-overview
6+
name: Overview
7+
parent: api-administration
8+
weight: 5
9+
menu_name: docsplatform_{{.version}}
10+
section_menu_id: api
11+
---
12+
13+
# Administration — Overview
14+
15+
Two admin surfaces: the legacy `/admin` group (administrative-org admins) and `/accounts/admin`
16+
(site-admin console powering the ACE admin UI). Both admin groups require Token + org context + authz checks.
17+
(The site-settings routes below are a separate surface whose read endpoints are public — see that table.)
18+
19+
## `/api/v1/admin` (administrative-org admins)
20+
21+
| Method | Path | Description |
22+
|--------|------|-------------|
23+
| GET | `/orgs` | List all organizations |
24+
| GET/POST | `/users` | List / create users |
25+
| PATCH/DELETE | `/users/:username` | Edit / delete a user |
26+
| POST | `/users/:username/update`, `/users/:username/change-password` | Update profile / change password |
27+
| GET/POST | `/users/:username/orgs` | List / create orgs for a user |
28+
| GET | `/users/:uid` | Get user info by ID |
29+
30+
## `/api/v1/accounts/admin` (site admin console)
31+
32+
| Method | Path | Description |
33+
|--------|------|-------------|
34+
| GET | `/` | Usage analytics dashboard |
35+
| GET | `/config` | Site configuration |
36+
| POST | `/config/test_mail` | Send a test email |
37+
| GET | `/monitor` | Site monitor info |
38+
| DELETE | `/delete/inactive-users` | Purge inactive users |
39+
| GET | `/users` | List users |
40+
| GET | `/users/deleted_accounts` | List deleted accounts |
41+
| POST | `/users/deleted_accounts/:id/reactivate` | Reactivate a deleted user |
42+
| POST | `/users/new` | Create a user |
43+
| POST | `/users/:userid` | Edit a user |
44+
| POST | `/users/:userid/delete` | Deactivate a user |
45+
| GET | `/orgs` | List organizations |
46+
| GET | `/orgs/orphaned/` | List orphaned organizations |
47+
| DELETE | `/orgs/orphaned/delete/:id` | Delete an orphaned org |
48+
| GET | `/clusters` | List all clusters |
49+
| GET | `/auths`, `/auths/auth-types` | List authentication sources / types |
50+
| POST | `/auths/new` | Create an authentication source |
51+
| GET/POST | `/auths/:authid`, POST `/auths/:authid/delete` | Manage an auth source |
52+
| GET | `/external_oauth` | List external OAuth2 sources |
53+
| POST | `/external_oauth/new`, `/external_oauth/:provider`, `/external_oauth/:provider/delete` | Manage external OAuth2 sources |
54+
55+
## Site settings (misc, `/api/v1`)
56+
57+
| Method | Path | Auth | Description |
58+
|--------|------|------|-------------|
59+
| GET | `/allowed-domains` | Public | List whitelisted email domains |
60+
| POST/PATCH | `/allowed-domains` | Site admin authz | Add / remove a whitelisted domain |
61+
| GET | `/disable-registration` | Public | Get registration enabled/disabled status |
62+
| POST | `/disable-registration` | Site admin authz | Enable/disable new user registration |
63+
| GET | `/branding` | Public | Get branding (logo, app name, colors) |
64+
| POST | `/branding` | Org + authzCheck(edit_branding_options) | Update branding |
65+
66+
## Reference pages
67+
68+
- [Administrative org](../admin-org.md)
69+
- [Site admin console](../site-admin-console.md)
70+
- [Site settings](../site-settings.md)
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
---
2+
layout: docs
3+
menu:
4+
docsplatform_{{.version}}:
5+
identifier: api-authorization-overview
6+
name: Overview
7+
parent: api-authorization
8+
weight: 5
9+
menu_name: docsplatform_{{.version}}
10+
section_menu_id: api
11+
---
12+
13+
# Authorization (Roles & Permissions) — Overview
14+
15+
Custom role management backed by the relationship-based authorization model.
16+
17+
| Method | Path | Auth | Description |
18+
|--------|------|------|-------------|
19+
| GET | `/api/v1/authz/objects/:objectType/:objID/allowed-permissions` | Token + org | Allowed permissions on an object |
20+
| POST | `/api/v1/authz/objects/allowed-permissions` | Token + org | Batch allowed-permissions query |
21+
| GET | `/api/v1/authz/roles/available_permissions` | Token + org | List available permissions |
22+
| GET/POST | `/api/v1/authz/roles` | Token + org (+create_role:org) | List / create roles |
23+
| GET/PUT/DELETE | `/api/v1/authz/roles/:id` | authzCheck(view/edit/delete:role) | Manage a role |
24+
| GET | `/api/v1/authz/roles/:id/principals` | authzCheck(viewer:role) | List principals assigned to a role |
25+
26+
## Reference pages
27+
28+
- [Roles & permissions](../roles-permissions.md)
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
---
2+
layout: docs
3+
menu:
4+
docsplatform_{{.version}}:
5+
identifier: api-billing-dashboard-overview
6+
name: Overview
7+
parent: api-billing-dashboard
8+
weight: 5
9+
menu_name: docsplatform_{{.version}}
10+
section_menu_id: api
11+
---
12+
13+
# Billing Dashboard & Usage Reports — Overview
14+
15+
Available on billing-enabled deployments.
16+
17+
## Site-admin billing dashboard (`/api/v1/dashboard`)
18+
19+
| Method | Path | Description |
20+
|--------|------|-------------|
21+
| GET | `/users/` (+`/active`, `/inactive`) | Licensed users |
22+
| GET | `/users/:uid/clusters/` (+`/active`, `/:cid/`) | A user's clusters |
23+
| GET | `/users/:uid/clusters/:cid/licenses/` (+`/active`, `/:lid/`) | Licenses per cluster |
24+
| GET | `/users/:uid/clusters/:cid/licenses/:lid/products/` (+`/:productName/`) | Licensed products |
25+
| GET | `.../products/:productName/{resources,events-histories,events/,events/raw-event}` | Product resource history & audit events |
26+
| GET | `/clusters/:cid/licenses/active` | Active licenses for a cluster |
27+
| POST | `/system-outages/`, GET `/system-outages/{report,tags}` | System outage records |
28+
| GET | `/marketplaces/subscriptions`, `/marketplaces/settings/warnings` | Marketplace subscriptions / warnings |
29+
| GET/DELETE | `/marketplaces/:marketplace/:subscriptionId/` (+`/ping`, `/audit-logs`) | Inspect / revoke / ping a subscription |
30+
31+
## User billing dashboard (`/api/v1/user/dashboard/clusters`, Token)
32+
33+
| Method | Path | Description |
34+
|--------|------|-------------|
35+
| GET | `/active` | My active clusters |
36+
| GET | `/:cid/` (+`/events-count`) | Cluster info / events count |
37+
| GET | `/:cid/licenses/` (+`/:lid/`) | Licenses |
38+
| GET | `/:cid/licenses/:lid/products/:product/{events-count,events/,events/raw-event}` | License events per product |
39+
| GET | `/:cid/licenses/:lid/products/:product/groups/:group/resources/:resource/:rid/events-count` | Per-resource events count |
40+
41+
## Usage reports (`/api/v1/dashboard/summary`, `/api/v1/dbaas`)
42+
43+
| Method | Path | Description |
44+
|--------|------|-------------|
45+
| GET | `/summary/generated-months` | Months with generated usage reports |
46+
| GET | `/summary/object-quota-history/clusters/:clusterUID/objects/:objectID` | Object quota history |
47+
| GET | `/summary/:year/:month/usage-report/products/kubeDb/views/*` | KubeDB usage views (objects, clusters, namespaces, GKS, contracts, quota history, cluster-mode) |
48+
| GET | `/summary/:year/:month/usage-report/products/{kubeStash,kubeVault,voyager}/views/{clusters,contracts}-usage-view` | Usage views per product |
49+
| GET | `/summary/:year/:month/download` | Download PDF usage report |
50+
| GET | `/dbaas/billing/reports/namespaces` (+`/clusters/:clusterID/namespaces/:namespaceName`) | DBaaS billing namespace reports |
51+
52+
## Reference pages
53+
54+
- [Admin dashboard](../admin-dashboard.md)
55+
- [User dashboard](../user-dashboard.md)
56+
- [Usage reports](../usage-reports.md)
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
---
2+
layout: docs
3+
menu:
4+
docsplatform_{{.version}}:
5+
identifier: api-chart-repositories-overview
6+
name: Overview
7+
parent: api-chart-repositories
8+
weight: 5
9+
menu_name: docsplatform_{{.version}}
10+
section_menu_id: api
11+
---
12+
13+
# Helm Chart Repositories (public) — Overview
14+
15+
`/api/v1/chartrepositories`
16+
17+
| Method | Path | Description |
18+
|--------|------|-------------|
19+
| GET | `/` | List chart repositories |
20+
| GET | `/charts` | List charts |
21+
| GET | `/charts/:name/versions` | List versions of a chart |
22+
23+
## Reference pages
24+
25+
- [Chart repositories](../chart-repositories.md)
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
---
2+
layout: docs
3+
menu:
4+
docsplatform_{{.version}}:
5+
identifier: api-client-organizations-overview
6+
name: Overview
7+
parent: api-client-organizations
8+
weight: 5
9+
menu_name: docsplatform_{{.version}}
10+
section_menu_id: api
11+
---
12+
13+
# Client Organizations — Overview
14+
15+
For managed-service providers: site admins create "client orgs" and manage per-cluster user access.
16+
17+
| Method | Path | Auth | Description |
18+
|--------|------|------|-------------|
19+
| GET | `/api/v1/user/clients` | Site-admin authz | List client organizations |
20+
| GET | `/api/v1/user/client/:id` | Site-admin authz | Get a client organization |
21+
| POST | `/api/v1/user/client/create` | authzCheck(create_client_org) | Create a client organization |
22+
| POST | `/api/v1/user/client/:orgname/{add-cluster,delete-cluster}` | authzCheck | Add / remove a cluster |
23+
| GET | `/api/v1/user/client/:orgname/status`, `/api/v1/user/client/:orgname/cluster/:cluster/status` | authzCheck | Client org / cluster status |
24+
| DELETE | `/api/v1/user/client/delete/:id` | authzCheck(delete_client_org) | Delete a client organization |
25+
| GET | `/api/v1/clusters/:owner/:cluster/permission/users` | Token + client-org | List users of a client org |
26+
| POST | `/api/v1/clusters/:owner/:cluster/permission/user/create` | Org-admin authz | Create an OCM user for a client org |
27+
| POST | `/api/v1/clusters/:owner/:cluster/permission/user/:id` | Org-admin authz | Get client-org user info |
28+
| GET | `/api/v1/clusters/:owner/:cluster/permission/user/:id/kubeconfig` | Org-admin authz | Kubeconfig for a client-org user |
29+
| POST | `/api/v1/clusters/:owner/:cluster/permission/user/:id/{remove,update}` | Org-admin authz | Manage permissions |
30+
| DELETE | `/api/v1/clusters/:owner/:cluster/permission/user/:id/delete` | Org-admin authz | Delete the OCM user |
31+
32+
## Reference pages
33+
34+
- [Management](../management.md)
35+
- [Cluster user permissions](../cluster-user-permissions.md)
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
---
2+
layout: docs
3+
menu:
4+
docsplatform_{{.version}}:
5+
identifier: api-cloud-providers-overview
6+
name: Overview
7+
parent: api-cloud-providers
8+
weight: 5
9+
menu_name: docsplatform_{{.version}}
10+
section_menu_id: api
11+
---
12+
13+
# Cloud Providers — Overview
14+
15+
`/api/v1/clouds`
16+
17+
Discovery APIs used by the cluster-provisioning wizard. Provider routes require Token + stored
18+
cloud credentials.
19+
20+
| Method | Path | Description |
21+
|--------|------|-------------|
22+
| GET | `/` | List supported cloud providers (public) |
23+
| POST | `/:owner/:provider/cluster` | Provision a cluster on a provider |
24+
| GET | `/:owner/providers/gke/projects` (+ per-project `clusters`, `clusters/:cluster`; per-region under `projects/:project/regions/:region`: `kubernetesversions`, `vms`) | GKE discovery |
25+
| GET | `/:owner/providers/aks/{regions,resourcegroups}` (+ per-region `vms`/`kubernetesversions`, per-RG `clusters` and `clusters/:cluster`) | AKS discovery |
26+
| GET | `/:owner/providers/eks/regions` (+ per-region `kubernetesversions`, `vms`, `clusters`, `clusters/:cluster`) | EKS discovery |
27+
| GET | `/:owner/providers/digitalocean/clusters` (+`/:id`) | DigitalOcean discovery |
28+
| GET | `/:owner/providers/linode/clusters` (+`/:id`) | Linode discovery |
29+
| GET | `/:owner/providers/rancher/clusters/` (+`/:id`) | Rancher-managed cluster discovery |
30+
| GET | `/:owner/providers/hetzner/{servers,kubernetesversions,regions}` (+ per-region `servers`) | Hetzner discovery |
31+
| GET | `/:owner/providers/kubevirt/kubernetesversions` | KubeVirt versions |
32+
33+
## Reference pages
34+
35+
- [Cloud providers](../cloud-providers.md)

0 commit comments

Comments
 (0)