@lukoweb/apitogo 0.1.67 → 0.1.69

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/dist/cli/cli.js +552 -380
  2. package/dist/declarations/lib/plugins/openapi/processors/injectApitogoGatewayServer.d.ts +6 -0
  3. package/docs/components/playground.mdx +6 -8
  4. package/docs/components/slot.mdx +2 -2
  5. package/docs/concepts/auth-provider-api-identities.md +8 -12
  6. package/docs/configuration/ai-assistants.md +3 -3
  7. package/docs/configuration/api-catalog.md +4 -4
  8. package/docs/configuration/api-reference.md +11 -11
  9. package/docs/configuration/authentication-auth0.md +8 -1
  10. package/docs/configuration/authentication-azure-ad.md +8 -1
  11. package/docs/configuration/authentication-clerk.md +8 -1
  12. package/docs/configuration/authentication-firebase.md +8 -1
  13. package/docs/configuration/authentication-pingfederate.md +8 -1
  14. package/docs/configuration/authentication-supabase.md +10 -3
  15. package/docs/configuration/authentication.md +96 -195
  16. package/docs/configuration/build-configuration.mdx +2 -2
  17. package/docs/configuration/docs.md +10 -10
  18. package/docs/configuration/footer.mdx +84 -180
  19. package/docs/configuration/llms.md +1 -1
  20. package/docs/configuration/make-config.mdx +12 -5
  21. package/docs/configuration/manifest.md +4 -14
  22. package/docs/configuration/navigation.mdx +2 -2
  23. package/docs/configuration/overview.md +95 -310
  24. package/docs/configuration/protected-routes.md +3 -3
  25. package/docs/configuration/search.md +4 -3
  26. package/docs/configuration/site.md +5 -5
  27. package/docs/configuration/slots.mdx +1 -1
  28. package/docs/custom-plugins.md +1 -1
  29. package/docs/customization/colors-theme.mdx +8 -8
  30. package/docs/customization/fonts.md +4 -4
  31. package/docs/deploy/apitogo.md +18 -12
  32. package/docs/deploy/cloudflare-pages.md +0 -1
  33. package/docs/deploy/direct-upload.md +0 -1
  34. package/docs/deploy/github-pages.md +1 -2
  35. package/docs/deploy/vercel.md +2 -3
  36. package/docs/deployment.md +11 -10
  37. package/docs/extending/events.md +1 -1
  38. package/docs/guides/custom-pages.md +4 -8
  39. package/docs/guides/environment-variables.md +41 -49
  40. package/docs/guides/managing-api-keys-and-identities.md +40 -115
  41. package/docs/guides/navigation-rules.mdx +1 -1
  42. package/docs/guides/processors.mdx +2 -2
  43. package/docs/guides/transforming-examples.md +1 -1
  44. package/docs/markdown/code-blocks.md +2 -2
  45. package/docs/markdown/mdx.md +1 -1
  46. package/docs/mcp/go-live.md +100 -0
  47. package/docs/mcp/overview.md +76 -0
  48. package/docs/mcp/setup.md +173 -0
  49. package/docs/mcp/shape.md +76 -0
  50. package/docs/mcp/tools.md +102 -0
  51. package/docs/plugins.md +20 -1
  52. package/docs/quickstart.md +49 -54
  53. package/docs/writing.mdx +1 -1
  54. package/package.json +1 -1
  55. package/src/lib/authentication/components/ProductionUnlockPage.tsx +4 -5
  56. package/src/lib/plugins/openapi/processors/injectApitogoGatewayServer.ts +30 -0
  57. package/src/vite/plugin-api.ts +6 -1
  58. package/src/vite/plugin-config.ts +3 -0
  59. package/docs/guides/navigation-migration.md +0 -87
@@ -0,0 +1,100 @@
1
+ ---
2
+ title: Go live with MCP
3
+ description:
4
+ Publish an APIToGo developer portal — platform plans, secrets, publish_dev_portal, and verify.
5
+ sidebar_icon: rocket
6
+ ---
7
+
8
+ **Go live** publishes your shaped portal to APItoGo hosting, optionally deploys the backend, upserts
9
+ gateway plans, and verifies the live site.
10
+
11
+ ## Before you publish
12
+
13
+ 1. Confirm **gateway / API plans** in the manifest (or pass them in `apply_product_intent`). Do not
14
+ invent Free + Pro.
15
+ 2. Save secrets in the site **`.env`** (never in chat):
16
+
17
+ ```sh
18
+ APITOGO_CONFIG_AUTHENTICATION__OIDC__AUTHORITY=https://login.example.com
19
+ APITOGO_CONFIG_AUTHENTICATION__OIDC__CLIENT_ID=your-client-id
20
+ APITOGO_CONFIG_AUTHENTICATION__OIDC__CLIENT_SECRET=your-client-secret
21
+ # Only when you have paid project plans:
22
+ APITOGO_CONFIG_AUTHENTICATION__STRIPE__SECRET_KEY=sk_test_...
23
+ APITOGO_CONFIG_AUTHENTICATION__STRIPE__WEBHOOK_SECRET=whsec_...
24
+ ```
25
+
26
+ 3. Choose a **platform hosting** plan: **Free**, **Starter**, or **Professional**. Agents should
27
+ call `list_platform_plans` / explain `freeProjectsQuota` before you pick. Starter and Professional
28
+ use Stripe checkout (`checkoutUrl`).
29
+
30
+ ## Happy path
31
+
32
+ ```text
33
+ apply_product_intent({ mode: "goLive", siteDirectory, platformPlan?, ... })
34
+ → check_dev_portal_publish_readiness
35
+ → ensure_platform_plan (if needed)
36
+ → publish_dev_portal
37
+ → verify_dev_portal_live
38
+ ```
39
+
40
+ If status is `blocked`, fix the readiness checklist (missing secrets, plan, OpenAPI). Do not invent
41
+ credentials.
42
+
43
+ After success, register **`manualSteps.oidcRedirectUri`** in your IdP. When `stripeRequired` is true,
44
+ create a Stripe webhook at `manualSteps.stripeWebhookUrl` for the listed events.
45
+
46
+ Do not treat warm-pool URLs as live until publish / deploy / verify succeed.
47
+
48
+ ## Granular go-live paths
49
+
50
+ ### Portal-first
51
+
52
+ Docs and billing before the API backend:
53
+
54
+ ```text
55
+ shape → publish_dev_portal → deploy_backend → sync_gateway_plans_from_manifest(syncActionsOnly: true)
56
+ ```
57
+
58
+ ### Full-stack
59
+
60
+ Backend already healthy:
61
+
62
+ ```text
63
+ shape → deploy_backend → publish_dev_portal(skipBackendRedeploy: true)
64
+ ```
65
+
66
+ ### CI one-shot
67
+
68
+ `bootstrap_dev_portal` provisions and deploys in one call (advanced).
69
+
70
+ ## Platform plan vs API plans
71
+
72
+ | Kind | Meaning | How |
73
+ | ----------------- | -------------------------------------------- | ---------------------------- |
74
+ | Platform hosting | Free / Starter / Professional on APItoGo | `ensure_platform_plan` |
75
+ | Gateway / API | End-user SKUs and rate limits on `/pricing` | Manifest / intent `plans` |
76
+
77
+ ## Publish behavior
78
+
79
+ - Unchanged healthy backend/site artifacts are reused unless you force redeploy.
80
+ - `publish_dev_portal` upserts gateway plans from the manifest; do **not** call
81
+ `sync_gateway_plans_from_manifest` before publish.
82
+ - After a post-publish `deploy_backend`, sync actions with
83
+ `sync_gateway_plans_from_manifest({ syncActionsOnly: true })`.
84
+ - Resume from `.apitogo/publish-state.json` or `resumeFromStep` if a previous publish stopped early.
85
+
86
+ ## CLI deploy vs MCP publish
87
+
88
+ | Path | Use when |
89
+ | ---------------------------- | ----------------------------------------------------- |
90
+ | MCP `publish_dev_portal` | Full product go-live (plans, auth, hosting, verify) |
91
+ | CLI `apitogo deploy` | Build + deploy a site with a deployment token only |
92
+
93
+ See [Deploy with APIToGo CLI](../deploy/apitogo.md).
94
+
95
+ ## Related
96
+
97
+ - [Shape](./shape.md)
98
+ - [Tools](./tools.md)
99
+ - [Authentication](../configuration/authentication.md)
100
+ - [Manifest](../configuration/manifest.md)
@@ -0,0 +1,76 @@
1
+ ---
2
+ title: MCP overview
3
+ description:
4
+ Use the APItoGo MCP server to scaffold, shape, and publish API products from an AI agent.
5
+ sidebar_icon: bot
6
+ ---
7
+
8
+ The **APItoGo MCP** server lets AI agents manage projects, developer portals, gateway plans, backend
9
+ deploy, and go-live. You can use MCP tools, edit site files yourself, or mix both.
10
+
11
+ **First time?** Install and wire the server in your agent →
12
+ **[Configure MCP in your agent](./setup.md)**. Then follow the [Quickstart](../quickstart.md).
13
+
14
+ ## What you get
15
+
16
+ - Scaffold a local portal site (`create_dev_portal` / `apply_product_intent`)
17
+ - Shape OpenAPI, plans, branding, theme, and docs pages
18
+ - Publish to APItoGo hosting (`publish_dev_portal`) with platform plans **Free**, **Starter**, or
19
+ **Professional**
20
+ - Deploy backends and sync gateway actions after publish
21
+
22
+ Prefer **`apply_product_intent`** for “create / shape / go live” prompts. See [Shape](./shape.md) and
23
+ [Go live](./go-live.md).
24
+
25
+ ## Prerequisites
26
+
27
+ ### MCP host environment
28
+
29
+ | Variable | Required | Purpose |
30
+ | ----------------------- | -------- | ----------------- |
31
+ | `APITOGO_API_KEY_ID` | Yes | Platform API auth |
32
+ | `APITOGO_API_SECRET` | Yes | Platform API auth |
33
+
34
+ ### Agent host
35
+
36
+ - Node.js 20+ (scaffold, build, preview)
37
+ - Network access to the npm registry during install/build
38
+ - OIDC credentials at publish time (site `.env` only — never in chat)
39
+ - Stripe secrets at publish only when you have **paid** project plans
40
+
41
+ ## Changing your site
42
+
43
+ You choose how to edit the portal:
44
+
45
+ | Approach | When it helps |
46
+ | -------- | ------------- |
47
+ | **MCP tools** | Agent-driven changes; tools can wire navigation/config and run validation. See [Tools](./tools.md). |
48
+ | **Edit files directly** | Full control in your editor — `apitogo.config.json`, `pages/**`, `landing/LandingPage.tsx`, etc. |
49
+
50
+ Useful MCP tools (optional — not required):
51
+
52
+ | Change | Tool |
53
+ | ----------------------------------- | ------------------------------------------------ |
54
+ | Add / edit a docs page | `add_dev_portal_page` / `update_dev_portal_page` |
55
+ | OpenAPI | `set_dev_portal_openapi` |
56
+ | Plans, branding, backend, projectId | `update_dev_portal_manifest` |
57
+ | Theme | `set_dev_portal_theme` |
58
+
59
+ Home page content often lives in `landing/LandingPage.tsx`. Site footer can live under
60
+ `modules.landing.content.footer` in `apitogo.config.json`.
61
+
62
+ ## Config model (local site)
63
+
64
+ | File | Role |
65
+ | --------------------- | ------------------------------------- |
66
+ | `apitogo.config.json` | Site, modules, plans, auth type, apis |
67
+ | `.env` | `VITE_*` + `APITOGO_CONFIG_*` secrets |
68
+
69
+ Details: [Manifest](../configuration/manifest.md).
70
+
71
+ ## Next
72
+
73
+ - [Configure MCP](./setup.md)
74
+ - [Quickstart](../quickstart.md)
75
+ - [Shape](./shape.md) · [Go live](./go-live.md) · [Tools](./tools.md)
76
+ - CLI without an agent: see the footnote on [Quickstart](../quickstart.md#without-an-agent-cli)
@@ -0,0 +1,173 @@
1
+ ---
2
+ title: Configure MCP in your agent
3
+ description:
4
+ Install and wire the APItoGo MCP server in Cursor, Claude Desktop, Claude Code, Codex, and other
5
+ MCP hosts.
6
+ sidebar_icon: plug
7
+ ---
8
+
9
+ Connect **`@lukoweb/apitogo-mcp`** to your AI agent so it can shape and publish API products. The
10
+ server is the same everywhere; only the host config file changes.
11
+
12
+ ## Prerequisites
13
+
14
+ - **Node.js 20+** on the machine that runs the agent (scaffold, build, preview)
15
+ - Platform API credentials from [apitogo.com](https://apitogo.com) (API key id + secret)
16
+
17
+ ## Shared server definition
18
+
19
+ Every host launches the same stdio process:
20
+
21
+ | Field | Value |
22
+ | --------- | ------------------------------------------ |
23
+ | Command | `npx` |
24
+ | Args | `-y`, `@lukoweb/apitogo-mcp` |
25
+ | Env | `APITOGO_API_KEY_ID`, `APITOGO_API_SECRET` |
26
+
27
+ Optional env: `APITOGO_API_URL`, `APITOGO_DOC_TOOL_PATH` (local doc-tool for scaffold).
28
+
29
+ Never commit secrets. Prefer host env blocks or `${VAR}` expansion where the client supports it.
30
+
31
+ ## Cursor
32
+
33
+ Add to `~/.cursor/mcp.json` (user) or `.cursor/mcp.json` (project):
34
+
35
+ ```json
36
+ {
37
+ "mcpServers": {
38
+ "apitogo": {
39
+ "command": "npx",
40
+ "args": ["-y", "@lukoweb/apitogo-mcp"],
41
+ "env": {
42
+ "APITOGO_API_KEY_ID": "apk_...",
43
+ "APITOGO_API_SECRET": "..."
44
+ }
45
+ }
46
+ }
47
+ }
48
+ ```
49
+
50
+ Restart Cursor (or reload MCP). Confirm the **apitogo** server is connected in MCP settings.
51
+
52
+ ### Optional: `apitogo-product` skill
53
+
54
+ So agents prefer `apply_product_intent` for create / go-live:
55
+
56
+ ```bash
57
+ # From the apitogo-local-mcp repo (or after npm pack of the package that ships skills/)
58
+ mkdir -p ~/.cursor/skills
59
+ cp -R skills/apitogo-product ~/.cursor/skills/apitogo-product
60
+ ```
61
+
62
+ Or project-scoped under `.cursor/skills/apitogo-product`.
63
+
64
+ ## Claude Desktop
65
+
66
+ Edit the Claude Desktop MCP config (same `mcpServers` shape as Cursor):
67
+
68
+ | OS | Path |
69
+ | ------- | ------------------------------------------------------------------------- |
70
+ | macOS | `~/Library/Application Support/Claude/claude_desktop_config.json` |
71
+ | Windows | `%APPDATA%\Claude\claude_desktop_config.json` |
72
+
73
+ ```json
74
+ {
75
+ "mcpServers": {
76
+ "apitogo": {
77
+ "command": "npx",
78
+ "args": ["-y", "@lukoweb/apitogo-mcp"],
79
+ "env": {
80
+ "APITOGO_API_KEY_ID": "apk_...",
81
+ "APITOGO_API_SECRET": "..."
82
+ }
83
+ }
84
+ }
85
+ }
86
+ ```
87
+
88
+ Fully quit and reopen Claude Desktop after saving.
89
+
90
+ ## Claude Code
91
+
92
+ **CLI (user scope — all projects):**
93
+
94
+ ```bash
95
+ claude mcp add --scope user --env APITOGO_API_KEY_ID=apk_... --env APITOGO_API_SECRET=... \
96
+ apitogo -- npx -y @lukoweb/apitogo-mcp
97
+ ```
98
+
99
+ **Project scope** (committed `.mcp.json` — use `${VAR}` for secrets):
100
+
101
+ ```bash
102
+ claude mcp add --scope project --env APITOGO_API_KEY_ID=${APITOGO_API_KEY_ID} \
103
+ --env APITOGO_API_SECRET=${APITOGO_API_SECRET} \
104
+ apitogo -- npx -y @lukoweb/apitogo-mcp
105
+ ```
106
+
107
+ Or hand-edit `.mcp.json` in the project root:
108
+
109
+ ```json
110
+ {
111
+ "mcpServers": {
112
+ "apitogo": {
113
+ "type": "stdio",
114
+ "command": "npx",
115
+ "args": ["-y", "@lukoweb/apitogo-mcp"],
116
+ "env": {
117
+ "APITOGO_API_KEY_ID": "${APITOGO_API_KEY_ID}",
118
+ "APITOGO_API_SECRET": "${APITOGO_API_SECRET}"
119
+ }
120
+ }
121
+ }
122
+ }
123
+ ```
124
+
125
+ User/local scope without a project file lives in `~/.claude.json`. Start a new Claude Code session
126
+ after changing config. Approve project-scoped servers when prompted.
127
+
128
+ ## OpenAI Codex
129
+
130
+ Edit `~/.codex/config.toml` (or project `.codex/config.toml` in a trusted project). The key must be
131
+ `mcp_servers` (not `mcpServers`):
132
+
133
+ ```toml
134
+ [mcp_servers.apitogo]
135
+ command = "npx"
136
+ args = ["-y", "@lukoweb/apitogo-mcp"]
137
+
138
+ [mcp_servers.apitogo.env]
139
+ APITOGO_API_KEY_ID = "apk_..."
140
+ APITOGO_API_SECRET = "..."
141
+ ```
142
+
143
+ You can also use `codex mcp add` if your Codex version supports it, then confirm the TOML entry.
144
+ Restart Codex / open a new session. See [Codex MCP docs](https://developers.openai.com/codex/mcp).
145
+
146
+ ## Other MCP hosts
147
+
148
+ Any client that supports **stdio** MCP can run APItoGo:
149
+
150
+ 1. Set command `npx`, args `["-y", "@lukoweb/apitogo-mcp"]`
151
+ 2. Pass `APITOGO_API_KEY_ID` and `APITOGO_API_SECRET` in the server env
152
+ 3. Restart the host and confirm tools load
153
+
154
+ Examples: Windsurf, VS Code Copilot Chat MCP, custom MCP clients — follow that product’s “add stdio
155
+ server” UI and paste the same command/args/env.
156
+
157
+ ## Verify
158
+
159
+ In a new agent chat:
160
+
161
+ 1. Ask the agent to list APItoGo tools, or call **`whoami`**.
162
+ 2. You should see platform tools such as `apply_product_intent`, `create_dev_portal`,
163
+ `publish_dev_portal`.
164
+
165
+ If the server fails to start: confirm Node 20+, that `npx -y @lukoweb/apitogo-mcp` works in a
166
+ terminal, and that the API key id/secret are correct.
167
+
168
+ ## Next
169
+
170
+ - [Quickstart](../quickstart.md) — first shape prompt
171
+ - [Shape](./shape.md) — local portal iteration
172
+ - [Go live](./go-live.md) — publish
173
+ - [Tools](./tools.md) — catalog
@@ -0,0 +1,76 @@
1
+ ---
2
+ title: Shape with MCP
3
+ description:
4
+ Scaffold and customize a developer portal locally with apply_product_intent (mode shape).
5
+ sidebar_icon: pencil-ruler
6
+ ---
7
+
8
+ **Shape** means: create or update a local portal site (OpenAPI, plans, auth flags, public routes)
9
+ without publishing. You preview with `npm run dev`.
10
+
11
+ ## Happy path
12
+
13
+ ```text
14
+ apply_product_intent({ mode: "shape", siteDirectory, backend?, openApi?, plans?, auth?, gatewayPolicies?, branding? })
15
+ → scaffold if needed
16
+ → wire OpenAPI / plans / auth / gateway.publicRoutes
17
+ → you run npm run dev
18
+ ```
19
+
20
+ Example prompt:
21
+
22
+ > Create a portal in `./dev-portal` for my API in `./api` with Free (100/min) and Pro (1000/min);
23
+ > make `/health` public.
24
+
25
+ Never invent Free + Pro gateway plans unless you ask for them. Never put OIDC or Stripe secrets in
26
+ chat.
27
+
28
+ ## Scaffold only
29
+
30
+ If you only want an empty site:
31
+
32
+ > Create a dev portal in `./dev-portal-site`.
33
+
34
+ The agent should call **`create_dev_portal`** (or `apply_product_intent` with shape when you also
35
+ pass plans/backend). Then run:
36
+
37
+ ```bash
38
+ cd ./dev-portal-site
39
+ npm run dev
40
+ ```
41
+
42
+ `create_dev_portal` does **not** start the preview server. Use `npm run dev` or
43
+ `preview_dev_portal_site`.
44
+
45
+ Optional: `bootstrapProject: true` on create (or `bootstrap_project`) to create the platform project
46
+ without selecting a hosting plan yet.
47
+
48
+ ## What to collect
49
+
50
+ Ask only for what is missing:
51
+
52
+ 1. **siteDirectory** — where to scaffold (e.g. `./dev-portal`)
53
+ 2. **backend** / **openApi** — source directory and/or OpenAPI path or URL
54
+ 3. **plans** — SKUs, prices, rate limits (your choice; not invented)
55
+ 4. **auth.mode** — `native` | `oidc` | `nativeAndOidc`
56
+ 5. **gatewayPolicies.publicRoutes** — e.g. `/health` (other routes stay subscription-key protected by
57
+ default)
58
+
59
+ ## Customize after shape
60
+
61
+ Use MCP tools (see [Tools](./tools.md)):
62
+
63
+ - Pages → `add_dev_portal_page` / `update_dev_portal_page` (TSX under Documentation nav by default)
64
+ - OpenAPI → `set_dev_portal_openapi`
65
+ - Plans / branding → `update_dev_portal_manifest`
66
+ - Theme → `set_dev_portal_theme`
67
+
68
+ Home page content: hand-edit `landing/LandingPage.tsx` after asking for real copy. Footer:
69
+ `modules.landing.content.footer` in `apitogo.config.json`.
70
+
71
+ Shape-phase edits hot-reload when the local preview is running. Pass `restartPreview: true` on
72
+ manifest updates only when you need mock pricing refreshed.
73
+
74
+ ## Next
75
+
76
+ When the site looks right, [go live](./go-live.md).
@@ -0,0 +1,102 @@
1
+ ---
2
+ title: MCP tools
3
+ description: APItoGo MCP tool catalog by category and hand-edit exceptions.
4
+ sidebar_icon: wrench
5
+ ---
6
+
7
+ Tools are exposed by the APItoGo MCP server. Prefer **`apply_product_intent`** for create / shape /
8
+ go-live. Use granular tools for advanced edits, debugging, or CI.
9
+
10
+ ## Lifecycle (prefer these)
11
+
12
+ | Tool | Role |
13
+ | ---------------------------- | --------------------------------------------------- |
14
+ | `apply_product_intent` | Shape or goLive from a product intent |
15
+ | `create_dev_portal` | Scaffold site (+ optional project bootstrap) |
16
+ | `check_dev_portal_publish_readiness` | Pre-publish checklist |
17
+ | `publish_dev_portal` | Publish portal + plans (+ optional backend) |
18
+ | `verify_dev_portal_live` | Post-publish verification |
19
+ | `bootstrap_dev_portal` | CI one-shot provision + deploy |
20
+ | `bootstrap_project` | Create platform project only (plan unselected) |
21
+ | `teardown_project` | Tear down a project |
22
+
23
+ ## Site shaping
24
+
25
+ | Tool | Role |
26
+ | --------------------------------- | ----------------------------------------- |
27
+ | `update_dev_portal_manifest` | Plans, branding, backend, projectId |
28
+ | `set_dev_portal_openapi` | OpenAPI / API reference |
29
+ | `set_dev_portal_theme` | Colors and fonts |
30
+ | `add_dev_portal_page` | Add a docs page (TSX under Documentation nav) |
31
+ | `update_dev_portal_page` | Edit a docs page |
32
+ | `scaffold_dev_portal_landing_page`| Scaffold missing landing file |
33
+ | `get_dev_portal_landing_guide` | Landing component catalog |
34
+ | `preview_dev_portal_site` | Start / restart local preview |
35
+ | `build_dev_portal_site` | Production build |
36
+
37
+ Hosted page CRUD also exists (`list/create/delete/rename/reorder_dev_portal_pages`) for the platform
38
+ API surface.
39
+
40
+ ## Projects and platform billing
41
+
42
+ | Tool | Role |
43
+ | ---------------------------- | ----------------------------------------- |
44
+ | `whoami`, `list_projects`, `get_project`, … | Tenant / project CRUD |
45
+ | `list_platform_plans` | Free / Starter / Professional + quota |
46
+ | `ensure_platform_plan` | Select or checkout platform plan |
47
+ | `wait_for_platform_plan` | Poll until active |
48
+ | `get_subscription` | Current subscription |
49
+ | `select_free_plan` | Free hosting |
50
+ | `create_checkout_session` | Stripe checkout for paid hosting |
51
+
52
+ ## Backend and OpenAPI
53
+
54
+ | Tool | Role |
55
+ | ----------------------- | ------------------------------- |
56
+ | `validate_openapi` | Validate OpenAPI |
57
+ | `update_openapi` | Update stored OpenAPI |
58
+ | `package_backend` | Package backend artifact |
59
+ | `deploy_backend` | Deploy API hub |
60
+ | `get_backend_summary` | Backend status |
61
+ | `get_deployment_status` | Deployment job status |
62
+ | `get_gateway_readiness` | Gateway readiness |
63
+
64
+ ## Gateway
65
+
66
+ | Tool | Role |
67
+ | -------------------------------------- | ----------------------------- |
68
+ | `list/get/create/update/patch_gateway_plan` | Plan CRUD |
69
+ | `add_actions_to_gateway_plan` / `remove_actions_from_gateway_plan` | Attach ops |
70
+ | `set_action_public` | Public routes |
71
+ | `upsert_entitlement` | Entitlements |
72
+ | `configure_gateway_baseline` | Baseline policies |
73
+ | `get/update_gateway_settings` | Settings |
74
+ | `get/update_gateway_auth` | Gateway auth |
75
+ | `sync_gateway_plans_from_manifest` | Post-publish action sync |
76
+ | `reorder_gateway_plans_from_manifest` | Plan order |
77
+
78
+ ## Infrastructure and deploy
79
+
80
+ | Tool | Role |
81
+ | --------------------------------- | ---------------------------- |
82
+ | `activate_module` | Activate modules |
83
+ | `get_infrastructure_status` / Azure variants | Infra status |
84
+ | `list_provisioning_jobs`, `wait_for_job` | Jobs |
85
+ | `get_deployment_token` | CLI deploy token |
86
+ | `get/set/delete_custom_domain` | Custom domain |
87
+ | `get_dev_portal_deploy_config`, `deploy_dev_portal`, … | SWA deploy |
88
+
89
+ ## Hand-edit exceptions
90
+
91
+ | Change | Where |
92
+ | ----------------- | -------------------------------------------------- |
93
+ | Home page content | `landing/LandingPage.tsx` |
94
+ | Site footer | `apitogo.config.json` → `modules.landing.content.footer` |
95
+
96
+ There is **no** `update_dev_portal_landing` tool for arbitrary home content.
97
+
98
+ ## Related
99
+
100
+ - [Overview](./overview.md)
101
+ - [Shape](./shape.md)
102
+ - [Go live](./go-live.md)
package/docs/plugins.md CHANGED
@@ -2,4 +2,23 @@
2
2
  title: APIToGo Plugins
3
3
  ---
4
4
 
5
- APIToGo can be extended using plugins.
5
+ APIToGo is extended with **plugins** registered in your site config. JSON cannot
6
+ hold React or functions.
7
+
8
+ Common uses:
9
+
10
+ - Search (Pagefind built-in; Algolia / Inkeep plugins) — [Search](./configuration/search.md)
11
+ - Billing UI — `@lukoweb/apitogo-plugin-dev-portal-billing` with `buildApitogoConfig`
12
+ - Custom behavior — [Custom plugins](./custom-plugins.md)
13
+ - Config transforms — `transformConfig` on a plugin (slots, syntax highlighting, etc.)
14
+
15
+ ```tsx title=config
16
+ import { buildApitogoConfig } from "@lukoweb/apitogo";
17
+ import { devPortalBillingPlugin } from "@lukoweb/apitogo-plugin-dev-portal-billing";
18
+
19
+ export default buildApitogoConfig({
20
+ plugins: [devPortalBillingPlugin()],
21
+ });
22
+ ```
23
+
24
+ See also [Extending / events](./extending/events.md) and [Slots](./configuration/slots.mdx).