@lukoweb/apitogo 0.1.120 → 0.1.126

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 (46) hide show
  1. package/LICENSE.md +18 -0
  2. package/dist/cli/cli.js +733 -396
  3. package/dist/declarations/config/local-manifest.d.ts +1 -1
  4. package/dist/declarations/lib/authentication/auth-header-nav.d.ts +5 -1
  5. package/dist/declarations/lib/authentication/hook.d.ts +25 -3
  6. package/dist/declarations/lib/authentication/state.d.ts +39 -3
  7. package/dist/declarations/lib/plugins/openapi/processors/injectApitogoGatewayServer.d.ts +1 -1
  8. package/docs/cli/go-live.md +21 -20
  9. package/docs/components/slot.mdx +2 -2
  10. package/docs/components.mdx +34 -34
  11. package/docs/concepts/auth-provider-api-identities.md +2 -2
  12. package/docs/configuration/authentication.md +16 -14
  13. package/docs/configuration/build-configuration.mdx +2 -2
  14. package/docs/configuration/make-config.mdx +5 -5
  15. package/docs/configuration/manifest.md +8 -14
  16. package/docs/configuration/navigation.mdx +4 -4
  17. package/docs/configuration/overview.md +6 -7
  18. package/docs/configuration/plans.md +19 -16
  19. package/docs/deploy/vercel.md +3 -4
  20. package/docs/deployment.md +5 -4
  21. package/docs/guides/custom-pages.md +2 -2
  22. package/docs/guides/environment-variables.md +19 -17
  23. package/docs/guides/managing-api-keys-and-identities.md +10 -18
  24. package/docs/mcp/go-live.md +12 -12
  25. package/docs/mcp/overview.md +10 -10
  26. package/docs/mcp/setup.md +9 -9
  27. package/docs/mcp/shape.md +4 -3
  28. package/docs/mcp/tools.md +61 -61
  29. package/docs/plugins.md +2 -2
  30. package/docs/quickstart.md +5 -6
  31. package/package.json +10 -155
  32. package/src/config/apitogo-config-core.ts +5 -1
  33. package/src/config/gateway-limits.ts +7 -2
  34. package/src/config/loader.ts +5 -7
  35. package/src/config/local-manifest.ts +7 -7
  36. package/src/config/resolve-modules.ts +5 -7
  37. package/src/lib/authentication/auth-header-nav.ts +3 -3
  38. package/src/lib/authentication/providers/dev-portal-auth-pages.tsx +2 -5
  39. package/src/lib/authentication/state.ts +1 -1
  40. package/src/lib/components/Layout.tsx +1 -4
  41. package/src/lib/components/SiteTitle.tsx +3 -1
  42. package/src/lib/plugins/openapi/processors/injectApitogoGatewayServer.ts +9 -3
  43. package/src/vite/config.ts +0 -21
  44. package/src/vite/plugin-api.ts +1 -1
  45. package/src/vite/plugin-modules.ts +1 -2
  46. package/src/vite/plugin-offroot-resolve.ts +2 -6
@@ -8,20 +8,22 @@ APIToGo uses Vite’s [env and mode](https://vite.dev/guide/env-and-mode) model,
8
8
 
9
9
  ## Portal / publish (`.env`)
10
10
 
11
- | Variable | Purpose |
12
- | -------- | ------- |
13
- | `VITE_APITOGO_AUTHENTICATION_API_BASE_URL` | Dev-portal API base URL (client) |
14
- | `APITOGO_CONFIG_AUTHENTICATION__API_BASE_URL` | Same, via config override |
15
- | `APITOGO_CONFIG_AUTHENTICATION__OIDC__*` | OIDC authority / client id / secret for publish |
16
- | `APITOGO_CONFIG_AUTHENTICATION__STRIPE__*` | Stripe secret + webhook (paid plans) |
17
- | `APITOGO_CONFIG_DEMO_MODE` | `false` to disable local demo sign-in |
18
- | `APITOGO_CONFIG_SITE__TITLE` | Override `site.title` |
19
- | `APITOGO_CONFIG_PROJECT_ID` | Local project id override |
20
-
21
- Nested overrides use `__` path segments (SCREAMING_SNAKE). See [Manifest](../configuration/manifest.md).
11
+ | Variable | Purpose |
12
+ | --------------------------------------------- | ----------------------------------------------- |
13
+ | `VITE_APITOGO_AUTHENTICATION_API_BASE_URL` | Dev-portal API base URL (client) |
14
+ | `APITOGO_CONFIG_AUTHENTICATION__API_BASE_URL` | Same, via config override |
15
+ | `APITOGO_CONFIG_AUTHENTICATION__OIDC__*` | OIDC authority / client id / secret for publish |
16
+ | `APITOGO_CONFIG_AUTHENTICATION__STRIPE__*` | Stripe secret + webhook (paid plans) |
17
+ | `APITOGO_CONFIG_DEMO_MODE` | `false` to disable local demo sign-in |
18
+ | `APITOGO_CONFIG_SITE__TITLE` | Override `site.title` |
19
+ | `APITOGO_CONFIG_PROJECT_ID` | Local project id override |
20
+
21
+ Nested overrides use `__` path segments (SCREAMING_SNAKE). See
22
+ [Manifest](../configuration/manifest.md).
22
23
 
23
24
  **Never commit** OIDC client secrets or Stripe keys. MCP never puts secrets in chat — you write them
24
- to `.env` before [go-live](../mcp/go-live.md) or `npx apitogo deploy` ([CLI go-live](../cli/go-live.md)).
25
+ to `.env` before [go-live](../mcp/go-live.md) or `npx apitogo deploy`
26
+ ([CLI go-live](../cli/go-live.md)).
25
27
 
26
28
  Example:
27
29
 
@@ -83,10 +85,10 @@ interface ImportMeta {
83
85
 
84
86
  ## MCP host (agent machine)
85
87
 
86
- | Variable | Purpose |
87
- | -------- | ------- |
88
- | `APITOGO_API_KEY_ID` / `APITOGO_API_SECRET` | Required for MCP and CLI deploy/status/teardown |
89
- | `APITOGO_DOC_TOOL_PATH` | Optional local doc-tool for scaffold |
90
- | `APITOGO_CLI_PATH` | Optional local `@lukoweb/apitogo` / doc-tool checkout for MCP spawn |
88
+ | Variable | Purpose |
89
+ | ------------------------------------------- | ------------------------------------------------------------------- |
90
+ | `APITOGO_API_KEY_ID` / `APITOGO_API_SECRET` | Required for MCP and CLI deploy/status/teardown |
91
+ | `APITOGO_DOC_TOOL_PATH` | Optional local doc-tool for scaffold |
92
+ | `APITOGO_CLI_PATH` | Optional local `@lukoweb/apitogo` / doc-tool checkout for MCP spawn |
91
93
 
92
94
  See [MCP overview](../mcp/overview.md) and [CLI overview](../cli/overview.md).
@@ -21,16 +21,15 @@ For developer portals, enable API keys under **`modules.userPanel.apiKeys`** in
21
21
  ```
22
22
 
23
23
  With MCP, prefer `update_dev_portal_manifest`. Subscription / gateway keys for provisioned portals
24
- are issued by the APItoGo platform after sign-in; see [Authentication](../configuration/authentication.md)
25
- and [MCP go-live](../mcp/go-live.md).
24
+ are issued by the APItoGo platform after sign-in; see
25
+ [Authentication](../configuration/authentication.md) and [MCP go-live](../mcp/go-live.md).
26
26
 
27
- Legacy root `apiKeys: { enabled: true }` is still migrated on load into
28
- `modules.userPanel.apiKeys`.
27
+ Legacy root `apiKeys: { enabled: true }` is still migrated on load into `modules.userPanel.apiKeys`.
29
28
 
30
29
  ## Custom API key UI plugin
31
30
 
32
- APIToGo includes a UI plugin for managing API consumers and keys (create, view, update, delete).
33
- You can point it at any backend by implementing callbacks / `ApiKeyService`.
31
+ APIToGo includes a UI plugin for managing API consumers and keys (create, view, update, delete). You
32
+ can point it at any backend by implementing callbacks / `ApiKeyService`.
34
33
 
35
34
  Enable and customize from TSX when you need custom create/list logic:
36
35
 
@@ -39,13 +38,10 @@ const config = {
39
38
  apiKeys: {
40
39
  enabled: true,
41
40
  createKey: async ({ apiKey, context, auth }) => {
42
- const createApiKeyRequest = new Request(
43
- "https://api.example.com/v1/developer/api-key",
44
- {
45
- method: "POST",
46
- body: JSON.stringify({ apiKey }),
47
- },
48
- );
41
+ const createApiKeyRequest = new Request("https://api.example.com/v1/developer/api-key", {
42
+ method: "POST",
43
+ body: JSON.stringify({ apiKey }),
44
+ });
49
45
  const signedRequest = await context.signRequest(createApiKeyRequest);
50
46
  const response = await fetch(signedRequest);
51
47
  if (!response.ok) {
@@ -66,11 +62,7 @@ enabled.
66
62
  interface ApiKeyService {
67
63
  getConsumers: (context: ApitogoContext) => Promise<ApiConsumer[]>;
68
64
  rollKey?: (consumerId: string, context: ApitogoContext) => Promise<void>;
69
- deleteKey?: (
70
- consumerId: string,
71
- keyId: string,
72
- context: ApitogoContext,
73
- ) => Promise<void>;
65
+ deleteKey?: (consumerId: string, keyId: string, context: ApitogoContext) => Promise<void>;
74
66
  updateConsumer?: (
75
67
  consumer: { id: string; label?: string },
76
68
  context: ApitogoContext,
@@ -24,8 +24,8 @@ gateway plans, and verifies the live site.
24
24
  ```
25
25
 
26
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`).
27
+ call `list_platform_plans` / explain `freeProjectsQuota` before you pick. Starter and
28
+ Professional use Stripe checkout (`checkoutUrl`).
29
29
 
30
30
  ## Happy path
31
31
 
@@ -40,8 +40,8 @@ apply_product_intent({ mode: "goLive", siteDirectory, platformPlan?, ... })
40
40
  If status is `blocked`, fix the readiness checklist (missing secrets, plan, OpenAPI). Do not invent
41
41
  credentials.
42
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.
43
+ After success, register **`manualSteps.oidcRedirectUri`** in your IdP. When `stripeRequired` is
44
+ true, create a Stripe webhook at `manualSteps.stripeWebhookUrl` for the listed events.
45
45
 
46
46
  Do not treat warm-pool URLs as live until publish / deploy / verify succeed.
47
47
 
@@ -69,10 +69,10 @@ shape → deploy_backend → publish_dev_portal(skipBackendRedeploy: true)
69
69
 
70
70
  ## Platform plan vs API plans
71
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` |
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
76
 
77
77
  ## Publish behavior
78
78
 
@@ -85,10 +85,10 @@ shape → deploy_backend → publish_dev_portal(skipBackendRedeploy: true)
85
85
 
86
86
  ## CLI deploy vs MCP publish
87
87
 
88
- | Path | Use when |
89
- | ---------------------------- | ----------------------------------------------------- |
90
- | MCP `publish_dev_portal` | Full product go-live (plans, auth, hosting, verify) |
91
- | CLI `npx apitogo deploy` | Publish config to platform (apihub + portal) |
88
+ | Path | Use when |
89
+ | ------------------------ | --------------------------------------------------- |
90
+ | MCP `publish_dev_portal` | Full product go-live (plans, auth, hosting, verify) |
91
+ | CLI `npx apitogo deploy` | Publish config to platform (apihub + portal) |
92
92
 
93
93
  See [Go live with CLI](../cli/go-live.md).
94
94
 
@@ -19,17 +19,17 @@ deploy, and go-live. You can use MCP tools, edit site files yourself, or mix bot
19
19
  **Professional**
20
20
  - Deploy backends and sync gateway actions after publish
21
21
 
22
- Prefer **`apply_product_intent`** for “create / shape / go live” prompts. See [Shape](./shape.md) and
23
- [Go live](./go-live.md).
22
+ Prefer **`apply_product_intent`** for “create / shape / go live” prompts. See [Shape](./shape.md)
23
+ and [Go live](./go-live.md).
24
24
 
25
25
  ## Prerequisites
26
26
 
27
27
  ### MCP host environment
28
28
 
29
- | Variable | Required | Purpose |
30
- | ----------------------- | -------- | ----------------- |
31
- | `APITOGO_API_KEY_ID` | Yes | Platform API auth |
32
- | `APITOGO_API_SECRET` | Yes | Platform API auth |
29
+ | Variable | Required | Purpose |
30
+ | -------------------- | -------- | ----------------- |
31
+ | `APITOGO_API_KEY_ID` | Yes | Platform API auth |
32
+ | `APITOGO_API_SECRET` | Yes | Platform API auth |
33
33
 
34
34
  ### Agent host
35
35
 
@@ -42,10 +42,10 @@ Prefer **`apply_product_intent`** for “create / shape / go live” prompts. Se
42
42
 
43
43
  You choose how to edit the portal:
44
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. |
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
49
 
50
50
  Useful MCP tools (optional — not required):
51
51
 
package/docs/mcp/setup.md CHANGED
@@ -18,11 +18,11 @@ server is the same everywhere; only the host config file changes.
18
18
 
19
19
  Every host launches the same stdio process:
20
20
 
21
- | Field | Value |
22
- | --------- | ------------------------------------------ |
23
- | Command | `npx` |
24
- | Args | `-y`, `@lukoweb/apitogo-mcp` |
25
- | Env | `APITOGO_API_KEY_ID`, `APITOGO_API_SECRET` |
21
+ | Field | Value |
22
+ | ------- | ------------------------------------------ |
23
+ | Command | `npx` |
24
+ | Args | `-y`, `@lukoweb/apitogo-mcp` |
25
+ | Env | `APITOGO_API_KEY_ID`, `APITOGO_API_SECRET` |
26
26
 
27
27
  Optional env: `APITOGO_API_URL`, `APITOGO_DOC_TOOL_PATH` (local doc-tool for scaffold).
28
28
 
@@ -65,10 +65,10 @@ Or project-scoped under `.cursor/skills/apitogo-product`.
65
65
 
66
66
  Edit the Claude Desktop MCP config (same `mcpServers` shape as Cursor):
67
67
 
68
- | OS | Path |
69
- | ------- | ------------------------------------------------------------------------- |
70
- | macOS | `~/Library/Application Support/Claude/claude_desktop_config.json` |
71
- | Windows | `%APPDATA%\Claude\claude_desktop_config.json` |
68
+ | OS | Path |
69
+ | ------- | ----------------------------------------------------------------- |
70
+ | macOS | `~/Library/Application Support/Claude/claude_desktop_config.json` |
71
+ | Windows | `%APPDATA%\Claude\claude_desktop_config.json` |
72
72
 
73
73
  ```json
74
74
  {
package/docs/mcp/shape.md CHANGED
@@ -53,14 +53,15 @@ Ask only for what is missing:
53
53
  2. **backend** / **openApi** — source directory and/or OpenAPI path or URL
54
54
  3. **plans** — SKUs, prices, rate limits (your choice; not invented)
55
55
  4. **auth.mode** — `native` | `oidc` | `nativeAndOidc`
56
- 5. **gatewayPolicies.publicRoutes** — e.g. `/health` (other routes stay subscription-key protected by
57
- default)
56
+ 5. **gatewayPolicies.publicRoutes** — e.g. `/health` (other routes stay subscription-key protected
57
+ by default)
58
58
 
59
59
  ## Customize after shape
60
60
 
61
61
  Use MCP tools (see [Tools](./tools.md)):
62
62
 
63
- - Pages → `add_dev_portal_page` / `update_dev_portal_page` (TSX only; `template`: docs|guide|marketing)
63
+ - Pages → `add_dev_portal_page` / `update_dev_portal_page` (TSX only; `template`:
64
+ docs|guide|marketing)
64
65
  - OpenAPI → `set_dev_portal_openapi`
65
66
  - Plans / branding → `update_dev_portal_manifest`
66
67
  - Theme → `set_dev_portal_theme`
package/docs/mcp/tools.md CHANGED
@@ -9,88 +9,88 @@ go-live. Use granular tools for advanced edits, debugging, or CI.
9
9
 
10
10
  ## Lifecycle (prefer these)
11
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 |
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
22
 
23
23
  ## Site shaping
24
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 TSX docs page (site components; `template`: docs\|guide\|marketing) |
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 |
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 TSX docs page (site components; `template`: docs\|guide\|marketing) |
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
36
 
37
37
  Hosted page CRUD also exists (`list/create/delete/rename/reorder_dev_portal_pages`) for the platform
38
38
  API surface.
39
39
 
40
40
  ## Projects and platform billing
41
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 |
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
51
 
52
52
  ## Backend and OpenAPI
53
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 |
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
63
 
64
64
  ## Gateway
65
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 |
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
77
 
78
78
  ## Infrastructure and deploy
79
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 |
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
88
 
89
89
  ## Hand-edit exceptions
90
90
 
91
- | Change | Where |
92
- | ----------------- | -------------------------------------------------- |
93
- | Home page content | `landing/LandingPage.tsx` |
91
+ | Change | Where |
92
+ | ----------------- | -------------------------------------------------------- |
93
+ | Home page content | `landing/LandingPage.tsx` |
94
94
  | Site footer | `apitogo.config.json` → `modules.landing.content.footer` |
95
95
 
96
96
  There is **no** `update_dev_portal_landing` tool for arbitrary home content.
package/docs/plugins.md CHANGED
@@ -2,8 +2,8 @@
2
2
  title: APIToGo Plugins
3
3
  ---
4
4
 
5
- APIToGo is extended with **plugins** registered in your site config. JSON cannot
6
- hold React or functions.
5
+ APIToGo is extended with **plugins** registered in your site config. JSON cannot hold React or
6
+ functions.
7
7
 
8
8
  Common uses:
9
9
 
@@ -1,12 +1,11 @@
1
1
  ---
2
2
  title: Quickstart
3
- description:
4
- Get started with APIToGo MCP — connect your agent, shape a portal, and preview locally.
3
+ description: Get started with APIToGo MCP — connect your agent, shape a portal, and preview locally.
5
4
  sidebar_icon: circle-play
6
5
  ---
7
6
 
8
- Build an API product (developer portal, plans, gateway, backend) with an AI agent and the
9
- **APItoGo MCP** server. Works with Cursor, Claude, Codex, and other MCP hosts.
7
+ Build an API product (developer portal, plans, gateway, backend) with an AI agent and the **APItoGo
8
+ MCP** server. Works with Cursor, Claude, Codex, and other MCP hosts.
10
9
 
11
10
  ## Prerequisites
12
11
 
@@ -54,8 +53,8 @@ Build an API product (developer portal, plans, gateway, backend) with an AI agen
54
53
 
55
54
  1. **Go live when ready**
56
55
 
57
- Save OIDC (and Stripe if you have paid plans) in the site `.env`, then ask the agent to publish
58
- — see [Go live](./mcp/go-live.md). Never paste secrets into chat.
56
+ Save OIDC (and Stripe if you have paid plans) in the site `.env`, then ask the agent to publish —
57
+ see [Go live](./mcp/go-live.md). Never paste secrets into chat.
59
58
 
60
59
  </Stepper>
61
60
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lukoweb/apitogo",
3
- "version": "0.1.120",
3
+ "version": "0.1.126",
4
4
  "type": "module",
5
5
  "sideEffects": [
6
6
  "**/*.css",
@@ -167,16 +167,6 @@
167
167
  "default": "./src/cli/platform/apply/index.ts"
168
168
  }
169
169
  },
170
- "scripts": {
171
- "build": "esbuild src/cli/cli.ts src/vite/prerender/worker.ts --outdir=dist/cli --entry-names=[name] --bundle --format=esm --packages=external --target=node20 --platform=node --log-level=error",
172
- "postbuild": "tsx scripts/check-external-deps.ts",
173
- "typecheck": "tsc --project tsconfig.app.json --noEmit",
174
- "generate:types": "tsx scripts/generate-types.js && tsx scripts/generate-flat-config.js",
175
- "build:standalone": "vite build --mode standalone --config vite.standalone.config.ts --log-level=error",
176
- "prepack": "npm run build && tsx scripts/generate-publish-exports.ts",
177
- "clean": "rm -rf dist",
178
- "codegen": "graphql-codegen --config ./src/codegen.ts"
179
- },
180
170
  "dependencies": {
181
171
  "@apidevtools/json-schema-ref-parser": "15.3.1",
182
172
  "@apidevtools/swagger-parser": "^12.1.0",
@@ -356,148 +346,13 @@
356
346
  "optional": true
357
347
  }
358
348
  },
359
- "publishConfig": {
360
- "exports": {
361
- ".": {
362
- "types": "./dist/declarations/index.d.ts",
363
- "default": "./src/index.ts"
364
- },
365
- "./package.json": "./package.json",
366
- "./ui/*": {
367
- "types": "./dist/declarations/lib/ui/*.d.ts",
368
- "default": "./src/lib/ui/*.tsx"
369
- },
370
- "./ui/*.js": {
371
- "types": "./dist/declarations/lib/ui/*.d.ts",
372
- "default": "./src/lib/ui/*.tsx"
373
- },
374
- "./client": {
375
- "types": "./client.d.ts"
376
- },
377
- "./auth/clerk": {
378
- "types": "./dist/declarations/lib/authentication/providers/clerk.d.ts",
379
- "default": "./src/lib/authentication/providers/clerk.tsx"
380
- },
381
- "./auth/auth0": {
382
- "types": "./dist/declarations/lib/authentication/providers/auth0.d.ts",
383
- "default": "./src/lib/authentication/providers/auth0.tsx"
384
- },
385
- "./auth/openid": {
386
- "types": "./dist/declarations/lib/authentication/providers/openid.d.ts",
387
- "default": "./src/lib/authentication/providers/openid.tsx"
388
- },
389
- "./auth/supabase": {
390
- "types": "./dist/declarations/lib/authentication/providers/supabase.d.ts",
391
- "default": "./src/lib/authentication/providers/supabase.tsx"
392
- },
393
- "./auth/azureb2c": {
394
- "types": "./dist/declarations/lib/authentication/providers/azureb2c.d.ts",
395
- "default": "./src/lib/authentication/providers/azureb2c.tsx"
396
- },
397
- "./auth/firebase": {
398
- "types": "./dist/declarations/lib/authentication/providers/firebase.d.ts",
399
- "default": "./src/lib/authentication/providers/firebase.tsx"
400
- },
401
- "./auth/dev-portal": {
402
- "types": "./dist/declarations/lib/authentication/providers/dev-portal.d.ts",
403
- "default": "./src/lib/authentication/providers/dev-portal.tsx"
404
- },
405
- "./plugins": {
406
- "types": "./dist/declarations/lib/core/plugins.d.ts",
407
- "default": "./src/lib/core/plugins.ts"
408
- },
409
- "./plugins/api-keys": {
410
- "types": "./dist/declarations/lib/plugins/api-keys/index.d.ts",
411
- "default": "./src/lib/plugins/api-keys/index.tsx"
412
- },
413
- "./plugins/markdown": {
414
- "types": "./dist/declarations/lib/plugins/markdown/index.d.ts",
415
- "default": "./src/lib/plugins/markdown/index.tsx"
416
- },
417
- "./plugins/openapi": {
418
- "types": "./dist/declarations/lib/plugins/openapi/index.d.ts",
419
- "default": "./src/lib/plugins/openapi/index.tsx"
420
- },
421
- "./plugins/custom-pages": {
422
- "types": "./dist/declarations/lib/plugins/custom-pages/index.d.ts",
423
- "default": "./src/lib/plugins/custom-pages/index.tsx"
424
- },
425
- "./plugins/search-inkeep": {
426
- "types": "./dist/declarations/lib/plugins/search-inkeep/index.d.ts",
427
- "default": "./src/lib/plugins/search-inkeep/index.tsx"
428
- },
429
- "./plugins/search-pagefind": {
430
- "types": "./dist/declarations/lib/plugins/search-pagefind/index.d.ts",
431
- "default": "./src/lib/plugins/search-pagefind/index.tsx"
432
- },
433
- "./plugins/api-catalog": {
434
- "types": "./dist/declarations/lib/plugins/api-catalog/index.d.ts",
435
- "default": "./src/lib/plugins/api-catalog/index.tsx"
436
- },
437
- "./modules/landing": "@lukoweb/apitogo-module-landing",
438
- "./modules/user-panel": "@lukoweb/apitogo-module-user-panel",
439
- "./components": {
440
- "types": "./dist/declarations/lib/components/index.d.ts",
441
- "default": "./src/lib/components/index.ts"
442
- },
443
- "./mermaid": {
444
- "types": "./dist/declarations/lib/components/Mermaid.d.ts",
445
- "default": "./src/lib/components/Mermaid.tsx"
446
- },
447
- "./router": {
448
- "types": "./dist/declarations/lib/core/router.d.ts",
449
- "default": "./src/lib/core/router.ts"
450
- },
451
- "./react-query": {
452
- "types": "./dist/declarations/lib/core/react-query.d.ts",
453
- "default": "./src/lib/core/react-query.ts"
454
- },
455
- "./icons": {
456
- "types": "./dist/declarations/lib/icons.d.ts",
457
- "default": "./src/lib/icons.ts"
458
- },
459
- "./vite": {
460
- "types": "./dist/declarations/vite/index.d.ts",
461
- "default": "./src/vite/index.ts"
462
- },
463
- "./app/*": {
464
- "types": "./dist/declarations/app/*.d.ts",
465
- "default": "./src/app/*"
466
- },
467
- "./hooks": {
468
- "types": "./dist/declarations/lib/hooks/index.d.ts",
469
- "default": "./src/lib/hooks/index.ts"
470
- },
471
- "./main.css": "./src/app/main.css",
472
- "./processors/*": {
473
- "types": "./dist/declarations/lib/plugins/openapi/processors/*.d.ts",
474
- "default": "./src/lib/plugins/openapi/processors/*.ts"
475
- },
476
- "./with-zuplo": {
477
- "types": "./dist/declarations/zuplo/with-zuplo.d.ts",
478
- "default": "./src/zuplo/with-zuplo.ts"
479
- },
480
- "./testing": {
481
- "types": "./dist/declarations/lib/testing/index.d.ts",
482
- "default": "./src/lib/testing/index.tsx"
483
- },
484
- "./local-manifest": {
485
- "types": "./dist/declarations/config/local-manifest.d.ts",
486
- "default": "./src/config/local-manifest.ts"
487
- },
488
- "./build-config": {
489
- "types": "./dist/declarations/config/build-apitogo-config.d.ts",
490
- "default": "./src/config/build-apitogo-config.ts"
491
- },
492
- "./config-loader": {
493
- "types": "./dist/declarations/config/apitogo-config-loader.d.ts",
494
- "default": "./src/config/apitogo-config-loader.ts"
495
- },
496
- "./apply": {
497
- "types": "./dist/declarations/cli/platform/apply/index.d.ts",
498
- "default": "./src/cli/platform/apply/index.ts"
499
- }
500
- },
501
- "access": "public"
349
+ "scripts": {
350
+ "build": "esbuild src/cli/cli.ts src/vite/prerender/worker.ts --outdir=dist/cli --entry-names=[name] --bundle --format=esm --packages=external --target=node20 --platform=node --log-level=error",
351
+ "postbuild": "tsx scripts/check-external-deps.ts",
352
+ "typecheck": "tsc --project tsconfig.app.json --noEmit",
353
+ "generate:types": "tsx scripts/generate-types.js && tsx scripts/generate-flat-config.js",
354
+ "build:standalone": "vite build --mode standalone --config vite.standalone.config.ts --log-level=error",
355
+ "clean": "rm -rf dist",
356
+ "codegen": "graphql-codegen --config ./src/codegen.ts"
502
357
  }
503
- }
358
+ }
@@ -1,4 +1,8 @@
1
- import { gatewayForConfig, mergeLimitsSource, planForConfig } from "./gateway-limits.js";
1
+ import {
2
+ gatewayForConfig,
3
+ mergeLimitsSource,
4
+ planForConfig,
5
+ } from "./gateway-limits.js";
2
6
 
3
7
  export const APITOGO_CONFIG_FILENAME = "apitogo.config.json";
4
8