@lukoweb/apitogo 0.2.22 → 0.2.24
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.
- package/README.md +94 -94
- package/cli.js +13 -13
- package/client.d.ts +8 -8
- package/dist/cli/cli.js +561 -232
- package/dist/declarations/cli/platform/client/platform-api.d.ts +18 -0
- package/dist/declarations/config/validators/InputNavigationSchema.d.ts +7 -7
- package/dist/declarations/config/validators/ZudokuConfig.d.ts +1 -1
- package/docs/cli/commands.md +75 -75
- package/docs/cli/go-live.md +123 -123
- package/docs/cli/overview.md +91 -91
- package/docs/cli/setup.md +141 -141
- package/docs/cli/shape.md +127 -127
- package/docs/components/alert.mdx +130 -130
- package/docs/components/badge.mdx +70 -70
- package/docs/components/button.mdx +132 -132
- package/docs/components/callout.mdx +112 -112
- package/docs/components/card.mdx +104 -104
- package/docs/components/checkbox.mdx +72 -72
- package/docs/components/client-only.mdx +79 -79
- package/docs/components/code-tabs.mdx +179 -179
- package/docs/components/dialog.mdx +167 -167
- package/docs/components/head.mdx +200 -200
- package/docs/components/icons.mdx +27 -27
- package/docs/components/input.mdx +96 -96
- package/docs/components/label.mdx +86 -86
- package/docs/components/link.mdx +242 -242
- package/docs/components/markdown.mdx +151 -151
- package/docs/components/mermaid.mdx +81 -81
- package/docs/components/playground.mdx +85 -85
- package/docs/components/secret.mdx +79 -79
- package/docs/components/select.mdx +176 -176
- package/docs/components/shadcn.mdx +73 -73
- package/docs/components/slider.mdx +108 -108
- package/docs/components/slot.mdx +119 -119
- package/docs/components/stepper.mdx +138 -138
- package/docs/components/switch.mdx +96 -96
- package/docs/components/syntax-highlight.mdx +602 -602
- package/docs/components/textarea.mdx +78 -78
- package/docs/components/tooltip.mdx +195 -195
- package/docs/components/typography.mdx +61 -61
- package/docs/components.mdx +60 -60
- package/docs/concepts/auth-provider-api-identities.md +105 -105
- package/docs/configuration/ai-assistants.md +65 -65
- package/docs/configuration/api-catalog.md +109 -109
- package/docs/configuration/api-reference.md +397 -397
- package/docs/configuration/authentication-auth0.md +181 -181
- package/docs/configuration/authentication-azure-ad.md +245 -245
- package/docs/configuration/authentication-clerk.md +117 -117
- package/docs/configuration/authentication-firebase.md +69 -69
- package/docs/configuration/authentication-pingfederate.md +143 -143
- package/docs/configuration/authentication-supabase.md +233 -233
- package/docs/configuration/authentication.md +159 -159
- package/docs/configuration/build-configuration.mdx +147 -147
- package/docs/configuration/docs.md +282 -282
- package/docs/configuration/footer.mdx +118 -118
- package/docs/configuration/gateway.md +221 -221
- package/docs/configuration/llms.md +90 -90
- package/docs/configuration/make-config.mdx +124 -124
- package/docs/configuration/manifest.md +128 -128
- package/docs/configuration/navigation.mdx +421 -421
- package/docs/configuration/overview.md +166 -166
- package/docs/configuration/plans.md +153 -153
- package/docs/configuration/protected-routes.md +150 -150
- package/docs/configuration/search.md +164 -164
- package/docs/configuration/sentry.mdx +44 -44
- package/docs/configuration/site.md +124 -124
- package/docs/configuration/slots.mdx +125 -125
- package/docs/configuration/vite-config.md +18 -18
- package/docs/custom-plugins.md +285 -285
- package/docs/customization/colors-theme.mdx +278 -278
- package/docs/customization/fonts.md +110 -110
- package/docs/customization/landing-page.md +188 -188
- package/docs/deploy/apache-nginx.md +41 -41
- package/docs/deploy/apitogo.md +17 -17
- package/docs/deploy/cloudflare-pages.md +74 -74
- package/docs/deploy/direct-upload.md +17 -17
- package/docs/deploy/github-pages.md +49 -49
- package/docs/deploy/vercel.md +101 -101
- package/docs/deployment.md +9 -9
- package/docs/extending/events.md +124 -124
- package/docs/guides/custom-pages.md +110 -110
- package/docs/guides/environment-variables.md +94 -94
- package/docs/guides/managing-api-keys-and-identities.md +89 -89
- package/docs/guides/mermaid.mdx +70 -70
- package/docs/guides/navigation-rules.mdx +203 -203
- package/docs/guides/processors.mdx +234 -234
- package/docs/guides/static-files.md +55 -55
- package/docs/guides/transforming-examples.md +156 -156
- package/docs/guides/using-multiple-apis.md +87 -87
- package/docs/markdown/admonitions.md +128 -128
- package/docs/markdown/code-blocks.md +196 -196
- package/docs/markdown/frontmatter.md +173 -173
- package/docs/markdown/mdx.md +68 -68
- package/docs/markdown/overview.md +275 -275
- package/docs/mcp/go-live.md +100 -100
- package/docs/mcp/overview.md +76 -76
- package/docs/mcp/setup.md +173 -173
- package/docs/mcp/shape.md +77 -77
- package/docs/mcp/tools.md +102 -102
- package/docs/plugins.md +24 -24
- package/docs/quickstart.md +72 -72
- package/docs/writing.mdx +72 -72
- package/package.json +1 -1
- package/src/app/ZuploBuildConfig.ts +36 -36
- package/src/app/apitogoBrandTheme.ts +47 -47
- package/src/app/defaultTheme.css +77 -77
- package/src/app/demo-cdn.html +37 -37
- package/src/app/demo.html +21 -21
- package/src/app/demo.tsx +77 -77
- package/src/app/entry.client.tsx +107 -107
- package/src/app/entry.server.tsx +160 -160
- package/src/app/env.ts +40 -40
- package/src/app/main.css +400 -400
- package/src/app/main.tsx +167 -167
- package/src/app/polyfills.ts +47 -47
- package/src/app/processRoutes.tsx +51 -51
- package/src/app/sentry.ts +24 -24
- package/src/app/standalone.html +23 -23
- package/src/app/standalone.tsx +60 -60
- package/src/app/utils/createRedirectRoutes.ts +11 -11
- package/src/config/apitogo-config-core.ts +7 -3
- package/src/config/apitogo-config-loader.browser.ts +17 -17
- package/src/config/apitogo-config-loader.node.ts +88 -88
- package/src/config/apitogo-config-loader.ts +6 -6
- package/src/config/build-apitogo-config.ts +61 -61
- package/src/config/config.ts +74 -74
- package/src/config/create-plugin.ts +71 -71
- package/src/config/default-landing-content.ts +149 -149
- package/src/config/file-exists.ts +6 -6
- package/src/config/gateway-limits.ts +128 -128
- package/src/config/landing-manifest.ts +11 -11
- package/src/config/landing-openapi-showcase.ts +124 -124
- package/src/config/loader.ts +375 -375
- package/src/config/local-manifest.ts +545 -545
- package/src/config/resolve-modules.ts +354 -354
- package/src/config/v2/__fixtures__/scenario-a-docs-only.json +6 -6
- package/src/config/v2/__fixtures__/scenario-b-managed-origin.json +14 -14
- package/src/config/v2/__fixtures__/scenario-c-proxy-oidc.json +15 -15
- package/src/config/v2/__fixtures__/scenario-h-full-stack.json +28 -28
- package/src/config/v2/docs-navigation.ts +72 -72
- package/src/config/v2/errors.ts +42 -42
- package/src/config/v2/gateway-reference.ts +220 -220
- package/src/config/v2/gateway-request.ts +123 -123
- package/src/config/v2/home-redirect.ts +98 -98
- package/src/config/v2/index.ts +126 -126
- package/src/config/v2/init.ts +273 -273
- package/src/config/v2/layout.ts +237 -237
- package/src/config/v2/ledger.ts +235 -235
- package/src/config/v2/link-directory.ts +34 -0
- package/src/config/v2/load.ts +70 -70
- package/src/config/v2/manifest.ts +452 -452
- package/src/config/v2/parse.ts +214 -214
- package/src/config/v2/paths.ts +54 -54
- package/src/config/v2/portal-profile.ts +88 -88
- package/src/config/v2/resolve.ts +188 -188
- package/src/config/v2/rules.ts +714 -714
- package/src/config/v2/schema.ts +245 -245
- package/src/config/v2/services.ts +663 -663
- package/src/config/v2/workspace.ts +3 -2
- package/src/config/v2/wrapper.ts +24 -2
- package/src/config/validators/BuildSchema.ts +95 -95
- package/src/config/validators/HeaderNavigationSchema.ts +44 -44
- package/src/config/validators/InputNavigationSchema.test-d.ts +178 -178
- package/src/config/validators/InputNavigationSchema.ts +206 -206
- package/src/config/validators/ModulesSchema.ts +502 -502
- package/src/config/validators/NavigationSchema.ts +352 -352
- package/src/config/validators/ProtectedRoutesSchema.ts +35 -35
- package/src/config/validators/ZudokuConfig.ts +792 -792
- package/src/config/validators/auth.ts +3 -3
- package/src/config/validators/reason-codes.ts +7 -7
- package/src/env.d.ts +11 -11
- package/src/index.ts +83 -83
- package/src/lib/MissingIcon.tsx +22 -22
- package/src/lib/assets/language-icons/bun.tsx +50 -50
- package/src/lib/assets/language-icons/c.tsx +31 -31
- package/src/lib/assets/language-icons/commonlisp.tsx +22 -22
- package/src/lib/assets/language-icons/cpp.tsx +35 -35
- package/src/lib/assets/language-icons/csharp.tsx +35 -35
- package/src/lib/assets/language-icons/css.tsx +36 -36
- package/src/lib/assets/language-icons/dart.tsx +39 -39
- package/src/lib/assets/language-icons/elixir.tsx +19 -19
- package/src/lib/assets/language-icons/go.tsx +19 -19
- package/src/lib/assets/language-icons/graphql.tsx +19 -19
- package/src/lib/assets/language-icons/html.tsx +24 -24
- package/src/lib/assets/language-icons/java.tsx +35 -35
- package/src/lib/assets/language-icons/javascript.tsx +11 -11
- package/src/lib/assets/language-icons/json.tsx +19 -19
- package/src/lib/assets/language-icons/kotlin.tsx +30 -30
- package/src/lib/assets/language-icons/markdown.tsx +19 -19
- package/src/lib/assets/language-icons/mdx.tsx +23 -23
- package/src/lib/assets/language-icons/npm.tsx +15 -15
- package/src/lib/assets/language-icons/objectivec.tsx +23 -23
- package/src/lib/assets/language-icons/ocaml.tsx +34 -34
- package/src/lib/assets/language-icons/php.tsx +19 -19
- package/src/lib/assets/language-icons/pnpm.tsx +32 -32
- package/src/lib/assets/language-icons/powershell.tsx +27 -27
- package/src/lib/assets/language-icons/python.tsx +23 -23
- package/src/lib/assets/language-icons/react.tsx +21 -21
- package/src/lib/assets/language-icons/ruby.tsx +19 -19
- package/src/lib/assets/language-icons/rust.tsx +19 -19
- package/src/lib/assets/language-icons/scala.tsx +19 -19
- package/src/lib/assets/language-icons/shell.tsx +19 -19
- package/src/lib/assets/language-icons/swift.tsx +19 -19
- package/src/lib/assets/language-icons/toml.tsx +23 -23
- package/src/lib/assets/language-icons/typescript.tsx +23 -23
- package/src/lib/assets/language-icons/xml.tsx +19 -19
- package/src/lib/assets/language-icons/yaml.tsx +23 -23
- package/src/lib/assets/language-icons/yarn.tsx +17 -17
- package/src/lib/assets/language-icons/zig.tsx +32 -32
- package/src/lib/auth/issuer.ts +34 -34
- package/src/lib/authentication/AuthenticationPlugin.tsx +33 -33
- package/src/lib/authentication/auth-header-nav.ts +46 -46
- package/src/lib/authentication/authentication.ts +51 -51
- package/src/lib/authentication/components/CallbackHandler.tsx +45 -45
- package/src/lib/authentication/components/OAuthErrorPage.tsx +197 -197
- package/src/lib/authentication/components/ProductionUnlockPage.tsx +26 -26
- package/src/lib/authentication/components/SignIn.tsx +46 -46
- package/src/lib/authentication/components/SignOut.tsx +15 -15
- package/src/lib/authentication/components/SignUp.tsx +48 -48
- package/src/lib/authentication/constants.ts +1 -1
- package/src/lib/authentication/errors.ts +34 -34
- package/src/lib/authentication/header-nav-filter.ts +35 -35
- package/src/lib/authentication/hook.ts +141 -141
- package/src/lib/authentication/providers/auth0.tsx +91 -91
- package/src/lib/authentication/providers/azureb2c.tsx +223 -223
- package/src/lib/authentication/providers/clerk.tsx +224 -224
- package/src/lib/authentication/providers/dev-portal-auth-pages.tsx +602 -602
- package/src/lib/authentication/providers/dev-portal-constants.ts +38 -38
- package/src/lib/authentication/providers/dev-portal-demo.ts +151 -151
- package/src/lib/authentication/providers/dev-portal-utils.ts +279 -279
- package/src/lib/authentication/providers/dev-portal.tsx +448 -448
- package/src/lib/authentication/providers/firebase.tsx +486 -486
- package/src/lib/authentication/providers/openid.tsx +516 -516
- package/src/lib/authentication/providers/supabase.tsx +412 -412
- package/src/lib/authentication/providers/util.ts +26 -26
- package/src/lib/authentication/state.ts +180 -180
- package/src/lib/authentication/ui/AuthCard.tsx +7 -7
- package/src/lib/authentication/ui/EmailLinkCallbackUi.tsx +129 -129
- package/src/lib/authentication/ui/EmailLinkSentUi.tsx +105 -105
- package/src/lib/authentication/ui/EmailLinkSignInUi.tsx +100 -100
- package/src/lib/authentication/ui/EmailVerificationUi.tsx +128 -128
- package/src/lib/authentication/ui/ZudokuAuthUi.tsx +620 -620
- package/src/lib/authentication/ui/icons/Apple.tsx +10 -10
- package/src/lib/authentication/ui/icons/Facebook.tsx +15 -15
- package/src/lib/authentication/ui/icons/Github.tsx +16 -16
- package/src/lib/authentication/ui/icons/Google.tsx +16 -16
- package/src/lib/authentication/ui/icons/Microsoft.tsx +12 -12
- package/src/lib/authentication/ui/icons/X.tsx +10 -10
- package/src/lib/authentication/utils/relativeRedirectUrl.ts +16 -16
- package/src/lib/components/AiAssistantMenuItems.tsx +102 -102
- package/src/lib/components/AnchorLink.tsx +24 -24
- package/src/lib/components/Autocomplete.tsx +123 -123
- package/src/lib/components/Banner.tsx +52 -52
- package/src/lib/components/Bootstrap.tsx +77 -77
- package/src/lib/components/BuildCheck.tsx +87 -87
- package/src/lib/components/CategoryHeading.tsx +19 -19
- package/src/lib/components/ClientOnly.tsx +19 -19
- package/src/lib/components/DeveloperHint.tsx +39 -39
- package/src/lib/components/ErrorPage.tsx +26 -26
- package/src/lib/components/Footer.tsx +146 -146
- package/src/lib/components/Framed.tsx +51 -51
- package/src/lib/components/Header.tsx +261 -261
- package/src/lib/components/HeaderAuthActions.tsx +32 -32
- package/src/lib/components/HeaderNavigation.tsx +176 -176
- package/src/lib/components/Heading.tsx +84 -84
- package/src/lib/components/InlineCode.tsx +15 -15
- package/src/lib/components/LandingLayout.tsx +27 -27
- package/src/lib/components/LanguageIcon.tsx +199 -199
- package/src/lib/components/Layout.tsx +59 -59
- package/src/lib/components/Main.tsx +52 -52
- package/src/lib/components/Markdown.tsx +55 -55
- package/src/lib/components/Mermaid.tsx +74 -74
- package/src/lib/components/Meta.tsx +46 -46
- package/src/lib/components/MobileTopNavigation.tsx +283 -283
- package/src/lib/components/MultiSelect.tsx +86 -86
- package/src/lib/components/NotFoundPage.tsx +37 -37
- package/src/lib/components/PageProgress.tsx +28 -28
- package/src/lib/components/PagefindSearchMeta.tsx +14 -14
- package/src/lib/components/Pagination.tsx +44 -44
- package/src/lib/components/PathRenderer.tsx +61 -61
- package/src/lib/components/PluginHeads.tsx +17 -17
- package/src/lib/components/Search.tsx +70 -70
- package/src/lib/components/SiteTitle.tsx +58 -58
- package/src/lib/components/Slot.tsx +65 -65
- package/src/lib/components/Spinner.tsx +5 -5
- package/src/lib/components/StatusPage.tsx +96 -96
- package/src/lib/components/ThemeSwitch.tsx +99 -99
- package/src/lib/components/TopNavigation.tsx +90 -90
- package/src/lib/components/Typography.tsx +12 -12
- package/src/lib/components/Zudoku.tsx +105 -105
- package/src/lib/components/cache.ts +27 -27
- package/src/lib/components/context/RenderContext.ts +11 -11
- package/src/lib/components/context/RouterEventsEmitter.tsx +19 -19
- package/src/lib/components/context/SlotProvider.tsx +149 -149
- package/src/lib/components/context/ViewportAnchorContext.tsx +137 -137
- package/src/lib/components/context/ZudokuContext.ts +140 -140
- package/src/lib/components/context/ZudokuProvider.tsx +20 -20
- package/src/lib/components/context/ZudokuReactContext.tsx +17 -17
- package/src/lib/components/index.ts +36 -36
- package/src/lib/components/navigation/Navigation.tsx +51 -51
- package/src/lib/components/navigation/NavigationBadge.tsx +48 -48
- package/src/lib/components/navigation/NavigationCategory.tsx +157 -157
- package/src/lib/components/navigation/NavigationFilterContext.tsx +28 -28
- package/src/lib/components/navigation/NavigationFilterInput.tsx +35 -35
- package/src/lib/components/navigation/NavigationItem.tsx +181 -181
- package/src/lib/components/navigation/NavigationWrapper.tsx +49 -49
- package/src/lib/components/navigation/PoweredByZudoku.tsx +39 -39
- package/src/lib/components/navigation/Toc.tsx +137 -137
- package/src/lib/components/navigation/ZudokuLogo.tsx +25 -25
- package/src/lib/components/navigation/ZuploLogo.tsx +14 -14
- package/src/lib/components/navigation/utils.ts +234 -234
- package/src/lib/core/RouteGuard.tsx +260 -260
- package/src/lib/core/ZudokuContext.ts +272 -272
- package/src/lib/core/plugins.ts +139 -139
- package/src/lib/core/react-query.ts +1 -1
- package/src/lib/core/router.ts +1 -1
- package/src/lib/core/transform-config.ts +67 -67
- package/src/lib/demo/DemoAnnouncement.tsx +17 -17
- package/src/lib/errors/ErrorAlert.tsx +28 -28
- package/src/lib/errors/ErrorMessage.tsx +50 -50
- package/src/lib/errors/RouterError.tsx +18 -18
- package/src/lib/errors/ServerError.tsx +5 -5
- package/src/lib/errors/TopLevelError.tsx +6 -6
- package/src/lib/hooks/index.ts +13 -13
- package/src/lib/hooks/useEvent.ts +41 -41
- package/src/lib/hooks/useHighlighter.ts +15 -15
- package/src/lib/hooks/useHotkey.ts +70 -70
- package/src/lib/icons.ts +2 -2
- package/src/lib/navigation/applyRules.ts +127 -127
- package/src/lib/navigation/pathMatcher.ts +81 -81
- package/src/lib/oas/graphql/circular.ts +69 -69
- package/src/lib/oas/graphql/constants.ts +2 -2
- package/src/lib/oas/graphql/index.ts +791 -791
- package/src/lib/oas/parser/dereference/index.ts +84 -84
- package/src/lib/oas/parser/dereference/resolveRef.ts +32 -32
- package/src/lib/oas/parser/index.ts +129 -129
- package/src/lib/oas/parser/schemas/v3.0.json +1489 -1489
- package/src/lib/oas/parser/schemas/v3.1.json +1298 -1298
- package/src/lib/oas/parser/upgrade/index.ts +174 -174
- package/src/lib/plugins/api-catalog/Catalog.tsx +80 -80
- package/src/lib/plugins/api-catalog/index.tsx +119 -119
- package/src/lib/plugins/api-keys/CreateApiKey.tsx +128 -128
- package/src/lib/plugins/api-keys/CreateApiKeyDialog.tsx +49 -49
- package/src/lib/plugins/api-keys/ProtectedRoute.tsx +33 -33
- package/src/lib/plugins/api-keys/SettingsApiKeys.tsx +72 -72
- package/src/lib/plugins/api-keys/index.tsx +274 -274
- package/src/lib/plugins/api-keys/settings/ApiKeyItem.tsx +342 -342
- package/src/lib/plugins/api-keys/settings/ApiKeyList.tsx +67 -67
- package/src/lib/plugins/api-keys/settings/RevealApiKey.tsx +127 -127
- package/src/lib/plugins/custom-pages/index.tsx +32 -32
- package/src/lib/plugins/markdown/MdxPage.tsx +260 -260
- package/src/lib/plugins/markdown/assets/ChatGPTLogo.tsx +11 -11
- package/src/lib/plugins/markdown/assets/ClaudeLogo.tsx +19 -19
- package/src/lib/plugins/markdown/index.tsx +82 -82
- package/src/lib/plugins/openapi/ApiHeader.tsx +96 -96
- package/src/lib/plugins/openapi/CollapsibleCode.tsx +88 -88
- package/src/lib/plugins/openapi/ColorizedParam.tsx +115 -115
- package/src/lib/plugins/openapi/DownloadSchemaButton.tsx +94 -94
- package/src/lib/plugins/openapi/Endpoint.tsx +85 -85
- package/src/lib/plugins/openapi/GeneratedExampleSidecarBox.tsx +52 -52
- package/src/lib/plugins/openapi/MCPEndpoint.tsx +273 -273
- package/src/lib/plugins/openapi/OasProvider.tsx +74 -74
- package/src/lib/plugins/openapi/OperationList.tsx +275 -275
- package/src/lib/plugins/openapi/OperationListItem.tsx +183 -183
- package/src/lib/plugins/openapi/ParamInfos.tsx +96 -96
- package/src/lib/plugins/openapi/ParameterList.tsx +53 -53
- package/src/lib/plugins/openapi/ParameterListItem.tsx +161 -161
- package/src/lib/plugins/openapi/PlaygroundDialogWrapper.tsx +67 -67
- package/src/lib/plugins/openapi/RequestBodySidecarBox.tsx +63 -63
- package/src/lib/plugins/openapi/ResponsesSidecarBox.tsx +120 -120
- package/src/lib/plugins/openapi/SchemaInfo.tsx +344 -344
- package/src/lib/plugins/openapi/SchemaList.tsx +113 -113
- package/src/lib/plugins/openapi/Sidecar.tsx +314 -314
- package/src/lib/plugins/openapi/SidecarBox.tsx +57 -57
- package/src/lib/plugins/openapi/SidecarExamples.tsx +177 -177
- package/src/lib/plugins/openapi/SimpleSelect.tsx +46 -46
- package/src/lib/plugins/openapi/client/GraphQLClient.tsx +73 -73
- package/src/lib/plugins/openapi/client/GraphQLContext.tsx +16 -16
- package/src/lib/plugins/openapi/client/createServer.ts +35 -35
- package/src/lib/plugins/openapi/client/useCreateQuery.ts +44 -44
- package/src/lib/plugins/openapi/components/ConstValue.tsx +24 -24
- package/src/lib/plugins/openapi/components/EnumValues.tsx +58 -58
- package/src/lib/plugins/openapi/components/NonHighlightedCode.tsx +22 -22
- package/src/lib/plugins/openapi/components/ResponseContent.tsx +117 -117
- package/src/lib/plugins/openapi/components/SelectOnClick.tsx +29 -29
- package/src/lib/plugins/openapi/context.tsx +16 -16
- package/src/lib/plugins/openapi/graphql/fragment-masking.ts +104 -104
- package/src/lib/plugins/openapi/graphql/gql.ts +95 -95
- package/src/lib/plugins/openapi/graphql/graphql.ts +835 -835
- package/src/lib/plugins/openapi/graphql/index.ts +2 -2
- package/src/lib/plugins/openapi/index.tsx +221 -221
- package/src/lib/plugins/openapi/interfaces.ts +100 -100
- package/src/lib/plugins/openapi/playground/BodyPanel.tsx +274 -274
- package/src/lib/plugins/openapi/playground/CollapsibleHeader.tsx +51 -51
- package/src/lib/plugins/openapi/playground/ExamplesDropdown.tsx +60 -60
- package/src/lib/plugins/openapi/playground/Headers.tsx +194 -194
- package/src/lib/plugins/openapi/playground/IdentityDialog.tsx +75 -75
- package/src/lib/plugins/openapi/playground/IdentitySelector.tsx +38 -38
- package/src/lib/plugins/openapi/playground/ParamsGrid.tsx +45 -45
- package/src/lib/plugins/openapi/playground/PathParams.tsx +53 -53
- package/src/lib/plugins/openapi/playground/Playground.tsx +602 -602
- package/src/lib/plugins/openapi/playground/PlaygroundDialog.tsx +62 -62
- package/src/lib/plugins/openapi/playground/QueryParams.tsx +151 -151
- package/src/lib/plugins/openapi/playground/RequestLoginDialog.tsx +70 -70
- package/src/lib/plugins/openapi/playground/Spinner.tsx +87 -87
- package/src/lib/plugins/openapi/playground/createUrl.ts +25 -25
- package/src/lib/plugins/openapi/playground/fileUtils.ts +36 -36
- package/src/lib/plugins/openapi/playground/rememberedIdentity.ts +26 -26
- package/src/lib/plugins/openapi/playground/request-panel/MultipartField.tsx +91 -91
- package/src/lib/plugins/openapi/playground/request-panel/UrlPath.tsx +31 -31
- package/src/lib/plugins/openapi/playground/request-panel/UrlQueryParams.tsx +29 -29
- package/src/lib/plugins/openapi/playground/request-panel/useKeyValueFieldManager.ts +340 -340
- package/src/lib/plugins/openapi/playground/result-panel/AudioPlayer.tsx +50 -50
- package/src/lib/plugins/openapi/playground/result-panel/ResponseStatusBar.tsx +117 -117
- package/src/lib/plugins/openapi/playground/result-panel/ResponseTab.tsx +355 -355
- package/src/lib/plugins/openapi/playground/result-panel/ResultPanel.tsx +106 -106
- package/src/lib/plugins/openapi/playground/result-panel/convertToTypes.ts +36 -36
- package/src/lib/plugins/openapi/playground/serializeQueryParams.ts +125 -125
- package/src/lib/plugins/openapi/playground/useRememberSkipLoginDialog.tsx +23 -23
- package/src/lib/plugins/openapi/processors/injectApitogoGatewayServer.ts +36 -36
- package/src/lib/plugins/openapi/processors/removeExtensions.ts +29 -29
- package/src/lib/plugins/openapi/processors/removeParameters.ts +103 -103
- package/src/lib/plugins/openapi/processors/removePaths.ts +57 -57
- package/src/lib/plugins/openapi/processors/traverse.ts +1 -1
- package/src/lib/plugins/openapi/schema/SchemaExampleAndDefault.tsx +39 -39
- package/src/lib/plugins/openapi/schema/SchemaPropertyItem.tsx +189 -189
- package/src/lib/plugins/openapi/schema/SchemaView.tsx +299 -299
- package/src/lib/plugins/openapi/schema/UnionView.tsx +132 -132
- package/src/lib/plugins/openapi/schema/union-helpers.ts +123 -123
- package/src/lib/plugins/openapi/schema/utils.ts +49 -49
- package/src/lib/plugins/openapi/state.ts +36 -36
- package/src/lib/plugins/openapi/util/buildTagCategories.ts +54 -54
- package/src/lib/plugins/openapi/util/createHttpSnippet.ts +135 -135
- package/src/lib/plugins/openapi/util/createNavigationCategory.tsx +39 -39
- package/src/lib/plugins/openapi/util/generateSchemaExample.ts +191 -191
- package/src/lib/plugins/openapi/util/getRoutes.tsx +265 -265
- package/src/lib/plugins/openapi/util/methodColorMap.tsx +11 -11
- package/src/lib/plugins/openapi/util/methodToColor.ts +27 -27
- package/src/lib/plugins/openapi/util/sanitizeMarkdownForMetatag.tsx +32 -32
- package/src/lib/plugins/openapi/util/useWarmupSchema.ts +23 -23
- package/src/lib/plugins/search-inkeep/index.tsx +108 -108
- package/src/lib/plugins/search-inkeep/inkeep.ts +24 -24
- package/src/lib/plugins/search-pagefind/IndexingDialog.tsx +162 -162
- package/src/lib/plugins/search-pagefind/PagefindSearch.tsx +202 -202
- package/src/lib/plugins/search-pagefind/ResultList.tsx +122 -122
- package/src/lib/plugins/search-pagefind/get-results.tsx +74 -74
- package/src/lib/plugins/search-pagefind/index.tsx +21 -21
- package/src/lib/plugins/search-pagefind/types.ts +118 -118
- package/src/lib/shiki-constants.ts +24 -24
- package/src/lib/shiki.ts +179 -179
- package/src/lib/testing/index.tsx +147 -147
- package/src/lib/ui/Accordion.tsx +55 -55
- package/src/lib/ui/ActionButton.tsx +21 -21
- package/src/lib/ui/Alert.tsx +84 -84
- package/src/lib/ui/AlertDialog.tsx +195 -195
- package/src/lib/ui/AspectRatio.tsx +5 -5
- package/src/lib/ui/Badge.tsx +48 -48
- package/src/lib/ui/Breadcrumb.tsx +115 -115
- package/src/lib/ui/Button.tsx +65 -65
- package/src/lib/ui/ButtonGroup.tsx +80 -80
- package/src/lib/ui/Callout.tsx +113 -113
- package/src/lib/ui/Card.tsx +95 -95
- package/src/lib/ui/Carousel.tsx +259 -259
- package/src/lib/ui/Checkbox.tsx +28 -28
- package/src/lib/ui/CodeBlock.tsx +92 -92
- package/src/lib/ui/CodeTabPanel.tsx +13 -13
- package/src/lib/ui/CodeTabs.tsx +161 -161
- package/src/lib/ui/Collapsible.tsx +31 -31
- package/src/lib/ui/Command.tsx +191 -191
- package/src/lib/ui/Dialog.tsx +138 -138
- package/src/lib/ui/DismissibleAlert.tsx +74 -74
- package/src/lib/ui/Drawer.tsx +121 -121
- package/src/lib/ui/DropdownMenu.tsx +254 -254
- package/src/lib/ui/EmbeddedCodeBlock.tsx +99 -99
- package/src/lib/ui/Form.tsx +176 -176
- package/src/lib/ui/Frame.tsx +81 -81
- package/src/lib/ui/HoverCard.tsx +26 -26
- package/src/lib/ui/Input.tsx +23 -23
- package/src/lib/ui/InputGroup.tsx +168 -168
- package/src/lib/ui/Item.tsx +213 -213
- package/src/lib/ui/Kbd.tsx +28 -28
- package/src/lib/ui/Label.tsx +23 -23
- package/src/lib/ui/NativeSelect.tsx +48 -48
- package/src/lib/ui/NavigationMenu.tsx +169 -169
- package/src/lib/ui/Pagination.tsx +115 -115
- package/src/lib/ui/Popover.tsx +28 -28
- package/src/lib/ui/Progress.tsx +25 -25
- package/src/lib/ui/RadioGroup.tsx +41 -41
- package/src/lib/ui/ReactComponentDoc.tsx +68 -68
- package/src/lib/ui/ScrollArea.tsx +45 -45
- package/src/lib/ui/Secret.tsx +133 -133
- package/src/lib/ui/Select.tsx +184 -184
- package/src/lib/ui/Separator.tsx +25 -25
- package/src/lib/ui/Skeleton.tsx +15 -15
- package/src/lib/ui/Slider.tsx +25 -25
- package/src/lib/ui/Stepper.tsx +8 -8
- package/src/lib/ui/Switch.tsx +26 -26
- package/src/lib/ui/SyntaxHighlight.tsx +54 -54
- package/src/lib/ui/Tabs.tsx +52 -52
- package/src/lib/ui/Textarea.tsx +22 -22
- package/src/lib/ui/Toggle.tsx +42 -42
- package/src/lib/ui/ToggleGroup.tsx +58 -58
- package/src/lib/ui/Tooltip.tsx +65 -65
- package/src/lib/ui/Value.tsx +42 -42
- package/src/lib/ui/util.tsx +8 -8
- package/src/lib/util/MdxComponents.tsx +150 -150
- package/src/lib/util/cn.ts +6 -6
- package/src/lib/util/createVariantComponent.tsx +61 -61
- package/src/lib/util/ensureArray.ts +3 -3
- package/src/lib/util/flattenAllOf.ts +72 -72
- package/src/lib/util/flattenAllOfProcessor.ts +74 -74
- package/src/lib/util/hastToJsx.tsx +67 -67
- package/src/lib/util/humanFileSize.ts +15 -15
- package/src/lib/util/invariant.ts +52 -52
- package/src/lib/util/joinUrl.ts +60 -60
- package/src/lib/util/logInit.ts +9 -9
- package/src/lib/util/objectEntries.ts +5 -5
- package/src/lib/util/os.ts +18 -18
- package/src/lib/util/pastellize.ts +25 -25
- package/src/lib/util/problemJson.ts +63 -63
- package/src/lib/util/readFrontmatter.ts +14 -14
- package/src/lib/util/renderIf.ts +4 -4
- package/src/lib/util/scrollIntoViewIfNeeded.ts +18 -18
- package/src/lib/util/slugify.ts +21 -21
- package/src/lib/util/syncZustandState.ts +22 -22
- package/src/lib/util/traverse.ts +70 -70
- package/src/lib/util/types.ts +7 -7
- package/src/lib/util/url.ts +18 -18
- package/src/lib/util/useCopyToClipboard.ts +17 -17
- package/src/lib/util/useExposedProps.tsx +27 -27
- package/src/lib/util/useIsomorphicLayoutEffect.ts +6 -6
- package/src/lib/util/useLatest.ts +18 -18
- package/src/lib/util/useOnScreen.ts +34 -34
- package/src/lib/util/useScrollToAnchor.ts +75 -75
- package/src/lib/util/useScrollToTop.ts +18 -18
- package/src/types.d.ts +66 -66
- package/src/vite/api/SchemaManager.ts +371 -371
- package/src/vite/api/schema-codegen.ts +163 -163
- package/src/vite/build.ts +237 -237
- package/src/vite/config.ts +273 -273
- package/src/vite/css/collect.ts +42 -42
- package/src/vite/css/plugin.ts +105 -105
- package/src/vite/debug.ts +18 -18
- package/src/vite/dev-portal-env.ts +29 -29
- package/src/vite/dev-server.ts +294 -294
- package/src/vite/html.ts +52 -52
- package/src/vite/index.ts +2 -2
- package/src/vite/llms.ts +99 -99
- package/src/vite/mdx/rehype-extract-toc-with-jsx-export.ts +19 -19
- package/src/vite/mdx/rehype-extract-toc-with-jsx.ts +70 -70
- package/src/vite/mdx/remark-code-tabs.ts +47 -47
- package/src/vite/mdx/remark-inject-filepath.ts +13 -13
- package/src/vite/mdx/remark-last-modified.ts +103 -103
- package/src/vite/mdx/remark-link-rewrite.ts +23 -23
- package/src/vite/mdx/remark-normalize-image-url.ts +15 -15
- package/src/vite/mdx/remark-static-generation.ts +149 -149
- package/src/vite/mdx/utils.ts +32 -32
- package/src/vite/output.ts +261 -261
- package/src/vite/package-root.ts +12 -12
- package/src/vite/pagefind-dev-index.ts +100 -100
- package/src/vite/pagefind-dev-stub.ts +17 -17
- package/src/vite/plugin-api-keys.ts +55 -55
- package/src/vite/plugin-api.ts +328 -328
- package/src/vite/plugin-auth.ts +41 -41
- package/src/vite/plugin-component.ts +45 -45
- package/src/vite/plugin-config-reload.ts +47 -47
- package/src/vite/plugin-config.ts +131 -131
- package/src/vite/plugin-custom-pages.ts +36 -36
- package/src/vite/plugin-doc-metadata.ts +45 -45
- package/src/vite/plugin-docs.ts +205 -205
- package/src/vite/plugin-local-manifest.ts +100 -100
- package/src/vite/plugin-markdown-export.ts +214 -214
- package/src/vite/plugin-mdx.ts +149 -149
- package/src/vite/plugin-metadata.ts +30 -30
- package/src/vite/plugin-modules.ts +188 -188
- package/src/vite/plugin-navigation.ts +106 -106
- package/src/vite/plugin-offroot-resolve.ts +67 -67
- package/src/vite/plugin-search.ts +59 -59
- package/src/vite/plugin-shiki-register.ts +97 -97
- package/src/vite/plugin-theme.ts +458 -458
- package/src/vite/plugin.ts +48 -48
- package/src/vite/prerender/prerender.ts +242 -242
- package/src/vite/prerender/utils.ts +76 -76
- package/src/vite/prerender/worker.ts +118 -118
- package/src/vite/reporter.ts +34 -34
- package/src/vite/shadcn-registry.ts +48 -48
- package/src/vite/sitemap.ts +78 -78
- package/src/vite/ssr-templates/cloudflare.ts +19 -19
- package/src/vite/ssr-templates/node.ts +25 -25
- package/src/vite/ssr-templates/vercel.ts +22 -22
- package/src/vite/watch-ignore.ts +70 -70
- package/src/vite/zuplo.ts +30 -30
- package/src/vite-env.d.ts +6 -6
- package/src/zuplo/enrich-with-zuplo-mcp.ts +168 -168
- package/src/zuplo/enrich-with-zuplo.ts +256 -256
- package/src/zuplo/policy-types.ts +46 -46
- package/src/zuplo/with-zuplo-processors.ts +36 -36
- package/src/zuplo/with-zuplo.ts +14 -14
- package/dist/declarations/cli/platform/client/deploy-server.d.ts +0 -16
|
@@ -1,124 +1,124 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Make config (CLI)
|
|
3
|
-
navigation_label: Make config
|
|
4
|
-
sidebar_icon: file-cog
|
|
5
|
-
description:
|
|
6
|
-
Create or update apitogo.config.json from your pages folder, OpenAPI, gateway plans, and optional
|
|
7
|
-
site settings.
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
The **`npx apitogo config`** command writes **`apitogo.config.json`**. It can scaffold a portal
|
|
11
|
-
project (package.json, tsconfig, landing and user-panel stubs, thin `apitogo.config.tsx`) when those
|
|
12
|
-
files are missing, merge **site / theme / authentication** from flags, run an **interactive wizard**
|
|
13
|
-
on a TTY (apply each change immediately), scan `pages/` for navigation, and wire OpenAPI plus an
|
|
14
|
-
**API Reference** link.
|
|
15
|
-
|
|
16
|
-
Landing and user panel are **always enabled** on new configs. **Authentication is enabled by
|
|
17
|
-
default** on new scaffolds. The command does **not** change `redirects`.
|
|
18
|
-
|
|
19
|
-
## Prerequisites
|
|
20
|
-
|
|
21
|
-
Install the CLI first — see [Install the CLI](../cli/setup.md). In short:
|
|
22
|
-
|
|
23
|
-
- **New site:** `npx @lukoweb/apitogo@latest init` (scaffolds into `./dev-portal` by default)
|
|
24
|
-
|
|
25
|
-
Run config from the project root with `npx apitogo config`.
|
|
26
|
-
|
|
27
|
-
## What it does
|
|
28
|
-
|
|
29
|
-
1. **Ensures npm scripts** — Creates **`package.json`** (dev / build / preview) and
|
|
30
|
-
**`tsconfig.json`** when missing, including `@lukoweb/apitogo`, landing, user-panel, and billing
|
|
31
|
-
packages.
|
|
32
|
-
2. **Creates `apitogo.config.json`** when missing, using the current portal template (`site`,
|
|
33
|
-
`theme`, `authentication` **enabled**, `modules.docs`, **landing on**, **user panel on**).
|
|
34
|
-
Creates a thin **`apitogo.config.tsx`** wrapper only if that file does not already exist
|
|
35
|
-
(existing TSX is left alone).
|
|
36
|
-
3. **Patches site, theme, and auth** from `--site`, `--theme`, `--authentication`, `--title`, or the
|
|
37
|
-
interactive wizard.
|
|
38
|
-
4. **Merges `navigation`** from `.md` / `.mdx` / `.tsx` files under your pages directory into a
|
|
39
|
-
Documentation category when those files exist. **Missing or empty `pages/` is fine** (common for
|
|
40
|
-
portal-only sites) — existing navigation is left alone. Other nav items are kept. Use
|
|
41
|
-
**`--force`** to rebuild Documentation items from disk when pages are present (API Reference is
|
|
42
|
-
still kept when OpenAPI is wired).
|
|
43
|
-
5. **Wires OpenAPI** when a spec is found (non-interactive) or when you enter a path in the wizard:
|
|
44
|
-
`apis: [{ type: "file", input, path: "api" }]` and a top-level **API Reference** link to `/api`
|
|
45
|
-
if that link is missing. Interactive mode stores a **relative file path** in `apis[0].input` (for
|
|
46
|
-
example `./openapi.yaml` or `../api/openapi.yaml`).
|
|
47
|
-
6. **Interactive only** — can set **backend** (`sourceDirectory`, `runtime`, `runtimeVersion`),
|
|
48
|
-
scaffold **custom pages** under `pages/`, and append **gateway plans** to
|
|
49
|
-
`modules.userPanel.plans.items`. Each choice is written immediately.
|
|
50
|
-
|
|
51
|
-
## Interactive wizard
|
|
52
|
-
|
|
53
|
-
On a TTY, bare `npx apitogo config` opens the wizard (no `-i` required). `-i` still works as an
|
|
54
|
-
alias. Use `--no-interactive` (or pass flags like `--title`) for CI / non-TTY.
|
|
55
|
-
|
|
56
|
-
```bash
|
|
57
|
-
npx apitogo config
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
1. **Loop** until you type `done` (default):
|
|
61
|
-
- **`backend`** — source directory, runtime (`dotnet` / `nodejs` / `python`), platform
|
|
62
|
-
`runtimeVersion` (writes `backend` in `apitogo.config.json` immediately)
|
|
63
|
-
- **`openapi`** — path to your OpenAPI file (relative link in config; empty skips)
|
|
64
|
-
- **`page`** — page title + URL path (writes `pages/<slug>.tsx` and wires navigation immediately)
|
|
65
|
-
- **`plan`** — plan title, price (USD/month), rate limit (calls/min), monthly quota (writes
|
|
66
|
-
immediately)
|
|
67
|
-
2. **Wrap-up** — links to [docs.apitogo.com](https://docs.apitogo.com) for further configuration
|
|
68
|
-
|
|
69
|
-
The wizard does **not** ask for fonts, colors, logo alt text, or the auth API base URL.
|
|
70
|
-
Authentication stays **enabled**; `npx apitogo deploy` writes
|
|
71
|
-
`VITE_APITOGO_AUTHENTICATION_API_BASE_URL` to `.env` after the portal backend is provisioned.
|
|
72
|
-
|
|
73
|
-
If you add a **paid** plan (`priceAmount > 0`), the CLI warns that **Free platform hosting cannot
|
|
74
|
-
publish paid gateway plans or custom domains** — use Starter or Professional on deploy.
|
|
75
|
-
|
|
76
|
-
See [Gateway plans](./plans.md) and [Shape with CLI](../cli/shape.md).
|
|
77
|
-
|
|
78
|
-
## Usage
|
|
79
|
-
|
|
80
|
-
Run from your project root (where `apitogo.config.json` and `package.json` live):
|
|
81
|
-
|
|
82
|
-
```bash
|
|
83
|
-
npx apitogo config
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
### Options
|
|
87
|
-
|
|
88
|
-
| Option | Description |
|
|
89
|
-
| ------------------------- | ----------------------------------------------------------------------- |
|
|
90
|
-
| `--pages-dir <dir>` | Folder to scan for `.md` / `.mdx` / `.tsx` (default: `pages`) |
|
|
91
|
-
| `--dir <path>` | Project root (default: current directory) |
|
|
92
|
-
| `--interactive` / `-i` | Force the wizard (default on TTY). Use `--no-interactive` to skip. |
|
|
93
|
-
| `--title <string>` | Set `site.title` (non-interactive) |
|
|
94
|
-
| `--site <json>` | Deep-merge a JSON object into `site` |
|
|
95
|
-
| `--theme <json>` | Deep-merge a JSON object into `theme` |
|
|
96
|
-
| `--authentication <json>` | Deep-merge a JSON object into `authentication` (secrets stay in `.env`) |
|
|
97
|
-
| `--force` | Replace Documentation nav items from disk |
|
|
98
|
-
|
|
99
|
-
Examples:
|
|
100
|
-
|
|
101
|
-
```bash
|
|
102
|
-
npx apitogo config
|
|
103
|
-
npx apitogo config --title "Books API"
|
|
104
|
-
npx apitogo config --theme '{"light":{"primary":"#111111"}}'
|
|
105
|
-
npx apitogo config --no-interactive
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
Theme and fonts are edited in `apitogo.config.json` or via MCP — not in the interactive wizard. See
|
|
109
|
-
[Colors & theme](../customization/colors-theme.mdx) and [Fonts](../customization/fonts.md).
|
|
110
|
-
|
|
111
|
-
There is **no `--modules` flag** for landing or user-panel toggles. Interactive mode **does** update
|
|
112
|
-
`modules.userPanel.plans` when you add plans.
|
|
113
|
-
|
|
114
|
-
## When not to use it
|
|
115
|
-
|
|
116
|
-
- You need a fully custom navigation order — skip `--force` or maintain navigation by hand.
|
|
117
|
-
- You want to change landing module home content — edit `landing/LandingPage.tsx`.
|
|
118
|
-
|
|
119
|
-
## See also
|
|
120
|
-
|
|
121
|
-
- [Manifest (`apitogo.config.json`)](./manifest.md)
|
|
122
|
-
- [Gateway plans](./plans.md)
|
|
123
|
-
- [Navigation](./navigation.md)
|
|
124
|
-
- [Shape with CLI](../cli/shape.md)
|
|
1
|
+
---
|
|
2
|
+
title: Make config (CLI)
|
|
3
|
+
navigation_label: Make config
|
|
4
|
+
sidebar_icon: file-cog
|
|
5
|
+
description:
|
|
6
|
+
Create or update apitogo.config.json from your pages folder, OpenAPI, gateway plans, and optional
|
|
7
|
+
site settings.
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
The **`npx apitogo config`** command writes **`apitogo.config.json`**. It can scaffold a portal
|
|
11
|
+
project (package.json, tsconfig, landing and user-panel stubs, thin `apitogo.config.tsx`) when those
|
|
12
|
+
files are missing, merge **site / theme / authentication** from flags, run an **interactive wizard**
|
|
13
|
+
on a TTY (apply each change immediately), scan `pages/` for navigation, and wire OpenAPI plus an
|
|
14
|
+
**API Reference** link.
|
|
15
|
+
|
|
16
|
+
Landing and user panel are **always enabled** on new configs. **Authentication is enabled by
|
|
17
|
+
default** on new scaffolds. The command does **not** change `redirects`.
|
|
18
|
+
|
|
19
|
+
## Prerequisites
|
|
20
|
+
|
|
21
|
+
Install the CLI first — see [Install the CLI](../cli/setup.md). In short:
|
|
22
|
+
|
|
23
|
+
- **New site:** `npx @lukoweb/apitogo@latest init` (scaffolds into `./dev-portal` by default)
|
|
24
|
+
|
|
25
|
+
Run config from the project root with `npx apitogo config`.
|
|
26
|
+
|
|
27
|
+
## What it does
|
|
28
|
+
|
|
29
|
+
1. **Ensures npm scripts** — Creates **`package.json`** (dev / build / preview) and
|
|
30
|
+
**`tsconfig.json`** when missing, including `@lukoweb/apitogo`, landing, user-panel, and billing
|
|
31
|
+
packages.
|
|
32
|
+
2. **Creates `apitogo.config.json`** when missing, using the current portal template (`site`,
|
|
33
|
+
`theme`, `authentication` **enabled**, `modules.docs`, **landing on**, **user panel on**).
|
|
34
|
+
Creates a thin **`apitogo.config.tsx`** wrapper only if that file does not already exist
|
|
35
|
+
(existing TSX is left alone).
|
|
36
|
+
3. **Patches site, theme, and auth** from `--site`, `--theme`, `--authentication`, `--title`, or the
|
|
37
|
+
interactive wizard.
|
|
38
|
+
4. **Merges `navigation`** from `.md` / `.mdx` / `.tsx` files under your pages directory into a
|
|
39
|
+
Documentation category when those files exist. **Missing or empty `pages/` is fine** (common for
|
|
40
|
+
portal-only sites) — existing navigation is left alone. Other nav items are kept. Use
|
|
41
|
+
**`--force`** to rebuild Documentation items from disk when pages are present (API Reference is
|
|
42
|
+
still kept when OpenAPI is wired).
|
|
43
|
+
5. **Wires OpenAPI** when a spec is found (non-interactive) or when you enter a path in the wizard:
|
|
44
|
+
`apis: [{ type: "file", input, path: "api" }]` and a top-level **API Reference** link to `/api`
|
|
45
|
+
if that link is missing. Interactive mode stores a **relative file path** in `apis[0].input` (for
|
|
46
|
+
example `./openapi.yaml` or `../api/openapi.yaml`).
|
|
47
|
+
6. **Interactive only** — can set **backend** (`sourceDirectory`, `runtime`, `runtimeVersion`),
|
|
48
|
+
scaffold **custom pages** under `pages/`, and append **gateway plans** to
|
|
49
|
+
`modules.userPanel.plans.items`. Each choice is written immediately.
|
|
50
|
+
|
|
51
|
+
## Interactive wizard
|
|
52
|
+
|
|
53
|
+
On a TTY, bare `npx apitogo config` opens the wizard (no `-i` required). `-i` still works as an
|
|
54
|
+
alias. Use `--no-interactive` (or pass flags like `--title`) for CI / non-TTY.
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
npx apitogo config
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
1. **Loop** until you type `done` (default):
|
|
61
|
+
- **`backend`** — source directory, runtime (`dotnet` / `nodejs` / `python`), platform
|
|
62
|
+
`runtimeVersion` (writes `backend` in `apitogo.config.json` immediately)
|
|
63
|
+
- **`openapi`** — path to your OpenAPI file (relative link in config; empty skips)
|
|
64
|
+
- **`page`** — page title + URL path (writes `pages/<slug>.tsx` and wires navigation immediately)
|
|
65
|
+
- **`plan`** — plan title, price (USD/month), rate limit (calls/min), monthly quota (writes
|
|
66
|
+
immediately)
|
|
67
|
+
2. **Wrap-up** — links to [docs.apitogo.com](https://docs.apitogo.com) for further configuration
|
|
68
|
+
|
|
69
|
+
The wizard does **not** ask for fonts, colors, logo alt text, or the auth API base URL.
|
|
70
|
+
Authentication stays **enabled**; `npx apitogo deploy` writes
|
|
71
|
+
`VITE_APITOGO_AUTHENTICATION_API_BASE_URL` to `.env` after the portal backend is provisioned.
|
|
72
|
+
|
|
73
|
+
If you add a **paid** plan (`priceAmount > 0`), the CLI warns that **Free platform hosting cannot
|
|
74
|
+
publish paid gateway plans or custom domains** — use Starter or Professional on deploy.
|
|
75
|
+
|
|
76
|
+
See [Gateway plans](./plans.md) and [Shape with CLI](../cli/shape.md).
|
|
77
|
+
|
|
78
|
+
## Usage
|
|
79
|
+
|
|
80
|
+
Run from your project root (where `apitogo.config.json` and `package.json` live):
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
npx apitogo config
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Options
|
|
87
|
+
|
|
88
|
+
| Option | Description |
|
|
89
|
+
| ------------------------- | ----------------------------------------------------------------------- |
|
|
90
|
+
| `--pages-dir <dir>` | Folder to scan for `.md` / `.mdx` / `.tsx` (default: `pages`) |
|
|
91
|
+
| `--dir <path>` | Project root (default: current directory) |
|
|
92
|
+
| `--interactive` / `-i` | Force the wizard (default on TTY). Use `--no-interactive` to skip. |
|
|
93
|
+
| `--title <string>` | Set `site.title` (non-interactive) |
|
|
94
|
+
| `--site <json>` | Deep-merge a JSON object into `site` |
|
|
95
|
+
| `--theme <json>` | Deep-merge a JSON object into `theme` |
|
|
96
|
+
| `--authentication <json>` | Deep-merge a JSON object into `authentication` (secrets stay in `.env`) |
|
|
97
|
+
| `--force` | Replace Documentation nav items from disk |
|
|
98
|
+
|
|
99
|
+
Examples:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
npx apitogo config
|
|
103
|
+
npx apitogo config --title "Books API"
|
|
104
|
+
npx apitogo config --theme '{"light":{"primary":"#111111"}}'
|
|
105
|
+
npx apitogo config --no-interactive
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Theme and fonts are edited in `apitogo.config.json` or via MCP — not in the interactive wizard. See
|
|
109
|
+
[Colors & theme](../customization/colors-theme.mdx) and [Fonts](../customization/fonts.md).
|
|
110
|
+
|
|
111
|
+
There is **no `--modules` flag** for landing or user-panel toggles. Interactive mode **does** update
|
|
112
|
+
`modules.userPanel.plans` when you add plans.
|
|
113
|
+
|
|
114
|
+
## When not to use it
|
|
115
|
+
|
|
116
|
+
- You need a fully custom navigation order — skip `--force` or maintain navigation by hand.
|
|
117
|
+
- You want to change landing module home content — edit `landing/LandingPage.tsx`.
|
|
118
|
+
|
|
119
|
+
## See also
|
|
120
|
+
|
|
121
|
+
- [Manifest (`apitogo.config.json`)](./manifest.md)
|
|
122
|
+
- [Gateway plans](./plans.md)
|
|
123
|
+
- [Navigation](./navigation.md)
|
|
124
|
+
- [Shape with CLI](../cli/shape.md)
|
|
@@ -1,128 +1,128 @@
|
|
|
1
|
-
# Site configuration (apitogo.config.json)
|
|
2
|
-
|
|
3
|
-
Dev portal sites use `apitogo.config.json` for site settings, plans, authentication, and backend
|
|
4
|
-
metadata, with optional `.env` overrides for secrets and local tweaks.
|
|
5
|
-
|
|
6
|
-
## Files
|
|
7
|
-
|
|
8
|
-
| File | Purpose |
|
|
9
|
-
| --------------------- | ----------------------------------------------------------- |
|
|
10
|
-
| `apitogo.config.json` | Committed defaults: site, modules, authentication, backend |
|
|
11
|
-
| `.env` | Public client vars + publish secrets via `APITOGO_CONFIG_*` |
|
|
12
|
-
|
|
13
|
-
## Canonical shape
|
|
14
|
-
|
|
15
|
-
```json
|
|
16
|
-
{
|
|
17
|
-
"site": {
|
|
18
|
-
"title": "My API",
|
|
19
|
-
"logo": {
|
|
20
|
-
"src": { "light": "/logo-light.png", "dark": "/logo-dark.png" },
|
|
21
|
-
"alt": "My API",
|
|
22
|
-
"width": "130px"
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
"authentication": {
|
|
26
|
-
"enabled": true,
|
|
27
|
-
"type": "dev-portal",
|
|
28
|
-
"apiBaseUrl": "https://your-dev-portal-api.example.com"
|
|
29
|
-
},
|
|
30
|
-
"gateway": {
|
|
31
|
-
"authMode": "bringYourOwnOidc",
|
|
32
|
-
"oidcMetadataUrl": "https://login.example.com/.well-known/openid-configuration",
|
|
33
|
-
"publicRoutes": ["/health"],
|
|
34
|
-
"cors": {
|
|
35
|
-
"allowedOrigins": ["https://myapp.example.com", "http://localhost:5173"]
|
|
36
|
-
}
|
|
37
|
-
},
|
|
38
|
-
"modules": {
|
|
39
|
-
"docs": { "files": "/pages/**/*.{md,mdx}" },
|
|
40
|
-
"landing": { "enabled": true, "path": "/", "layout": "landing" },
|
|
41
|
-
"userPanel": {
|
|
42
|
-
"enabled": true,
|
|
43
|
-
"dashboard": { "enabled": true },
|
|
44
|
-
"userManagement": { "enabled": true },
|
|
45
|
-
"plans": {
|
|
46
|
-
"enabled": true,
|
|
47
|
-
"items": [
|
|
48
|
-
{
|
|
49
|
-
"sku": "free",
|
|
50
|
-
"displayName": "Free",
|
|
51
|
-
"priceAmount": 0
|
|
52
|
-
}
|
|
53
|
-
]
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
},
|
|
57
|
-
"apis": [{ "type": "file", "input": "./apis/openapi.yaml", "path": "api" }]
|
|
58
|
-
}
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
- **Site name / logo:** only `site.title` and `site.logo` (platform branding is derived at publish).
|
|
62
|
-
- **OpenAPI path:** `backend.openApiPath` is derived from `apis[0].input`.
|
|
63
|
-
- **Billing / account plans:** use `modules.userPanel.plans.enabled` and store the plan catalog in
|
|
64
|
-
`modules.userPanel.plans.items`. Add plans with `npx apitogo config` or edit the manifest by hand.
|
|
65
|
-
See [Gateway plans](./plans.md). Legacy root `plans` is migrated on load.
|
|
66
|
-
- **Docs / API keys:** configure under `modules.docs` and `modules.userPanel.apiKeys` only.
|
|
67
|
-
- **Gateway:** top-level `gateway` (not under `authentication`). See [Gateway CORS](#gateway-cors)
|
|
68
|
-
and [Gateway plans](./plans.md).
|
|
69
|
-
|
|
70
|
-
## Gateway CORS
|
|
71
|
-
|
|
72
|
-
Browser calls from your developer portal (and any other SPA) to the API gateway are cross-origin.
|
|
73
|
-
APItoGo always allows the portal site origin. Add extra origins under `gateway.cors.allowedOrigins`
|
|
74
|
-
when tenant apps or local frontends call the gateway:
|
|
75
|
-
|
|
76
|
-
```json
|
|
77
|
-
{
|
|
78
|
-
"gateway": {
|
|
79
|
-
"cors": {
|
|
80
|
-
"allowedOrigins": ["https://myapp.example.com", "http://localhost:5173"]
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
| Rule | Detail |
|
|
87
|
-
| --------------- | ----------------------------------------------------------------------------------- |
|
|
88
|
-
| Portal origin | Always allowed by the platform (`https://{your-portal-host}`). Do not list it here. |
|
|
89
|
-
| Extra origins | Absolute `http://` or `https://` origins only — no path, query, or fragment. |
|
|
90
|
-
| Wildcard | `"*"` is allowed (replaces the list; credentials stay off). |
|
|
91
|
-
| Empty / omitted | Portal playground still works; only extras are missing. |
|
|
92
|
-
|
|
93
|
-
Apply with `npx apitogo deploy` / `publish_dev_portal` so APIM policies pick up the change.
|
|
94
|
-
|
|
95
|
-
## Environment variables
|
|
96
|
-
|
|
97
|
-
Public client URL (mirrors `authentication.apiBaseUrl`):
|
|
98
|
-
|
|
99
|
-
```sh
|
|
100
|
-
VITE_APITOGO_AUTHENTICATION_API_BASE_URL=https://your-dev-portal-api.example.com
|
|
101
|
-
```
|
|
102
|
-
|
|
103
|
-
Nested config overrides (uppercase SCREAMING_SNAKE path segments; camelCase still accepted):
|
|
104
|
-
|
|
105
|
-
```sh
|
|
106
|
-
APITOGO_CONFIG_SITE__TITLE=My Local Site
|
|
107
|
-
APITOGO_CONFIG_PRICING__ENABLED=true
|
|
108
|
-
APITOGO_CONFIG_PROJECT_ID=your-local-project-id
|
|
109
|
-
APITOGO_CONFIG_AUTHENTICATION__API_BASE_URL=https://your-dev-portal-api.example.com
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
Publish secrets (uncomment in `.env`, never commit):
|
|
113
|
-
|
|
114
|
-
```sh
|
|
115
|
-
APITOGO_CONFIG_AUTHENTICATION__OIDC__AUTHORITY=https://login.example.com
|
|
116
|
-
APITOGO_CONFIG_AUTHENTICATION__OIDC__CLIENT_ID=your-client-id
|
|
117
|
-
APITOGO_CONFIG_AUTHENTICATION__OIDC__CLIENT_SECRET=your-client-secret
|
|
118
|
-
APITOGO_CONFIG_AUTHENTICATION__STRIPE__SECRET_KEY=sk_test_...
|
|
119
|
-
APITOGO_CONFIG_AUTHENTICATION__STRIPE__WEBHOOK_SECRET=whsec_...
|
|
120
|
-
```
|
|
121
|
-
|
|
122
|
-
## Related
|
|
123
|
-
|
|
124
|
-
- [Gateway plans](./plans.md)
|
|
125
|
-
- [Authentication](./authentication.md)
|
|
126
|
-
- [Overview](./overview.md)
|
|
127
|
-
- [MCP overview](../mcp/overview.md)
|
|
128
|
-
- [Environment variables](../guides/environment-variables.md)
|
|
1
|
+
# Site configuration (apitogo.config.json)
|
|
2
|
+
|
|
3
|
+
Dev portal sites use `apitogo.config.json` for site settings, plans, authentication, and backend
|
|
4
|
+
metadata, with optional `.env` overrides for secrets and local tweaks.
|
|
5
|
+
|
|
6
|
+
## Files
|
|
7
|
+
|
|
8
|
+
| File | Purpose |
|
|
9
|
+
| --------------------- | ----------------------------------------------------------- |
|
|
10
|
+
| `apitogo.config.json` | Committed defaults: site, modules, authentication, backend |
|
|
11
|
+
| `.env` | Public client vars + publish secrets via `APITOGO_CONFIG_*` |
|
|
12
|
+
|
|
13
|
+
## Canonical shape
|
|
14
|
+
|
|
15
|
+
```json
|
|
16
|
+
{
|
|
17
|
+
"site": {
|
|
18
|
+
"title": "My API",
|
|
19
|
+
"logo": {
|
|
20
|
+
"src": { "light": "/logo-light.png", "dark": "/logo-dark.png" },
|
|
21
|
+
"alt": "My API",
|
|
22
|
+
"width": "130px"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"authentication": {
|
|
26
|
+
"enabled": true,
|
|
27
|
+
"type": "dev-portal",
|
|
28
|
+
"apiBaseUrl": "https://your-dev-portal-api.example.com"
|
|
29
|
+
},
|
|
30
|
+
"gateway": {
|
|
31
|
+
"authMode": "bringYourOwnOidc",
|
|
32
|
+
"oidcMetadataUrl": "https://login.example.com/.well-known/openid-configuration",
|
|
33
|
+
"publicRoutes": ["/health"],
|
|
34
|
+
"cors": {
|
|
35
|
+
"allowedOrigins": ["https://myapp.example.com", "http://localhost:5173"]
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"modules": {
|
|
39
|
+
"docs": { "files": "/pages/**/*.{md,mdx}" },
|
|
40
|
+
"landing": { "enabled": true, "path": "/", "layout": "landing" },
|
|
41
|
+
"userPanel": {
|
|
42
|
+
"enabled": true,
|
|
43
|
+
"dashboard": { "enabled": true },
|
|
44
|
+
"userManagement": { "enabled": true },
|
|
45
|
+
"plans": {
|
|
46
|
+
"enabled": true,
|
|
47
|
+
"items": [
|
|
48
|
+
{
|
|
49
|
+
"sku": "free",
|
|
50
|
+
"displayName": "Free",
|
|
51
|
+
"priceAmount": 0
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"apis": [{ "type": "file", "input": "./apis/openapi.yaml", "path": "api" }]
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
- **Site name / logo:** only `site.title` and `site.logo` (platform branding is derived at publish).
|
|
62
|
+
- **OpenAPI path:** `backend.openApiPath` is derived from `apis[0].input`.
|
|
63
|
+
- **Billing / account plans:** use `modules.userPanel.plans.enabled` and store the plan catalog in
|
|
64
|
+
`modules.userPanel.plans.items`. Add plans with `npx apitogo config` or edit the manifest by hand.
|
|
65
|
+
See [Gateway plans](./plans.md). Legacy root `plans` is migrated on load.
|
|
66
|
+
- **Docs / API keys:** configure under `modules.docs` and `modules.userPanel.apiKeys` only.
|
|
67
|
+
- **Gateway:** top-level `gateway` (not under `authentication`). See [Gateway CORS](#gateway-cors)
|
|
68
|
+
and [Gateway plans](./plans.md).
|
|
69
|
+
|
|
70
|
+
## Gateway CORS
|
|
71
|
+
|
|
72
|
+
Browser calls from your developer portal (and any other SPA) to the API gateway are cross-origin.
|
|
73
|
+
APItoGo always allows the portal site origin. Add extra origins under `gateway.cors.allowedOrigins`
|
|
74
|
+
when tenant apps or local frontends call the gateway:
|
|
75
|
+
|
|
76
|
+
```json
|
|
77
|
+
{
|
|
78
|
+
"gateway": {
|
|
79
|
+
"cors": {
|
|
80
|
+
"allowedOrigins": ["https://myapp.example.com", "http://localhost:5173"]
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
| Rule | Detail |
|
|
87
|
+
| --------------- | ----------------------------------------------------------------------------------- |
|
|
88
|
+
| Portal origin | Always allowed by the platform (`https://{your-portal-host}`). Do not list it here. |
|
|
89
|
+
| Extra origins | Absolute `http://` or `https://` origins only — no path, query, or fragment. |
|
|
90
|
+
| Wildcard | `"*"` is allowed (replaces the list; credentials stay off). |
|
|
91
|
+
| Empty / omitted | Portal playground still works; only extras are missing. |
|
|
92
|
+
|
|
93
|
+
Apply with `npx apitogo deploy` / `publish_dev_portal` so APIM policies pick up the change.
|
|
94
|
+
|
|
95
|
+
## Environment variables
|
|
96
|
+
|
|
97
|
+
Public client URL (mirrors `authentication.apiBaseUrl`):
|
|
98
|
+
|
|
99
|
+
```sh
|
|
100
|
+
VITE_APITOGO_AUTHENTICATION_API_BASE_URL=https://your-dev-portal-api.example.com
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Nested config overrides (uppercase SCREAMING_SNAKE path segments; camelCase still accepted):
|
|
104
|
+
|
|
105
|
+
```sh
|
|
106
|
+
APITOGO_CONFIG_SITE__TITLE=My Local Site
|
|
107
|
+
APITOGO_CONFIG_PRICING__ENABLED=true
|
|
108
|
+
APITOGO_CONFIG_PROJECT_ID=your-local-project-id
|
|
109
|
+
APITOGO_CONFIG_AUTHENTICATION__API_BASE_URL=https://your-dev-portal-api.example.com
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Publish secrets (uncomment in `.env`, never commit):
|
|
113
|
+
|
|
114
|
+
```sh
|
|
115
|
+
APITOGO_CONFIG_AUTHENTICATION__OIDC__AUTHORITY=https://login.example.com
|
|
116
|
+
APITOGO_CONFIG_AUTHENTICATION__OIDC__CLIENT_ID=your-client-id
|
|
117
|
+
APITOGO_CONFIG_AUTHENTICATION__OIDC__CLIENT_SECRET=your-client-secret
|
|
118
|
+
APITOGO_CONFIG_AUTHENTICATION__STRIPE__SECRET_KEY=sk_test_...
|
|
119
|
+
APITOGO_CONFIG_AUTHENTICATION__STRIPE__WEBHOOK_SECRET=whsec_...
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Related
|
|
123
|
+
|
|
124
|
+
- [Gateway plans](./plans.md)
|
|
125
|
+
- [Authentication](./authentication.md)
|
|
126
|
+
- [Overview](./overview.md)
|
|
127
|
+
- [MCP overview](../mcp/overview.md)
|
|
128
|
+
- [Environment variables](../guides/environment-variables.md)
|