@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,181 +1,181 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Auth0 Setup
|
|
3
|
-
sidebar_label: Auth0
|
|
4
|
-
description:
|
|
5
|
-
Learn how to set up Auth0 authentication for APIToGo, including application configuration and
|
|
6
|
-
integration steps for secure API documentation access.
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
:::caution{title="SPA / advanced"}
|
|
10
|
-
|
|
11
|
-
Portal products on APItoGo use [`dev-portal`](./authentication.md) authentication. Use Auth0 SPA
|
|
12
|
-
integration only for standalone docs sites that talk to Auth0 directly.
|
|
13
|
-
|
|
14
|
-
:::
|
|
15
|
-
|
|
16
|
-
Auth0 is a flexible authentication and authorization platform that integrates seamlessly with
|
|
17
|
-
APIToGo. This guide walks you through setting up Auth0 authentication for your documentation site.
|
|
18
|
-
|
|
19
|
-
## Prerequisites
|
|
20
|
-
|
|
21
|
-
If you don't have an Auth0 account, you can sign up for a
|
|
22
|
-
[free Auth0 account](https://auth0.com/signup) that provides 7,000 monthly active users.
|
|
23
|
-
|
|
24
|
-
## Setup Steps
|
|
25
|
-
|
|
26
|
-
<Stepper>
|
|
27
|
-
|
|
28
|
-
1. **Create Auth0 Application**
|
|
29
|
-
|
|
30
|
-
[Create a new Auth0 application](https://auth0.com/docs/get-started/auth0-overview/create-applications)
|
|
31
|
-
in the Auth0 dashboard:
|
|
32
|
-
- Select type **Single Page Web Applications**
|
|
33
|
-
- Give your application a descriptive name
|
|
34
|
-
|
|
35
|
-
2. **Configure Auth0 Application**
|
|
36
|
-
|
|
37
|
-
In your Auth0 application settings, configure the following:
|
|
38
|
-
|
|
39
|
-
**Application URLs:**
|
|
40
|
-
- **Allowed Callback URLs**:
|
|
41
|
-
- Production: `https://your-site.com/oauth/callback`
|
|
42
|
-
- Preview (wildcard): `https://*.your-domain.com/oauth/callback`
|
|
43
|
-
- Local Development: `http://localhost:3000/oauth/callback`
|
|
44
|
-
- **Allowed Logout URLs**: Same as callback URLs above
|
|
45
|
-
|
|
46
|
-
- **Allowed Web Origins**:
|
|
47
|
-
- Production: `https://your-site.com`
|
|
48
|
-
- Preview (wildcard): `https://*.your-domain.com`
|
|
49
|
-
- Local development: `http://localhost:3000`
|
|
50
|
-
|
|
51
|
-
**Refresh Token Rotation:**
|
|
52
|
-
- **Allow Refresh Token Rotation**: Enabled
|
|
53
|
-
- **Rotation Overlap Period**: 0 seconds (recommended)
|
|
54
|
-
|
|
55
|
-
Keep the default **Refresh Token Expiration** settings unless you have specific requirements.
|
|
56
|
-
|
|
57
|
-
3. Create an Auth0 API:
|
|
58
|
-
- Navigate to the [APIs section](https://manage.auth0.com/#/apis) in the Auth0 dashboard
|
|
59
|
-
- Click **Create API**
|
|
60
|
-
- Set a name (e.g., "APIToGo API") and an identifier (e.g., `https://your-domain.com/api`)
|
|
61
|
-
- Choose **RS256** as the signing algorithm
|
|
62
|
-
- Save the API
|
|
63
|
-
|
|
64
|
-
:::warning
|
|
65
|
-
|
|
66
|
-
This step is important. If you skip creating an API, APIToGo will not be able to validate the
|
|
67
|
-
tokens issued by Auth0, leading to authentication failures.
|
|
68
|
-
|
|
69
|
-
:::
|
|
70
|
-
|
|
71
|
-
4. **Configure APIToGo**
|
|
72
|
-
|
|
73
|
-
Add the Auth0 configuration to your [APIToGo configuration file](./overview.md):
|
|
74
|
-
|
|
75
|
-
```typescript
|
|
76
|
-
// site config
|
|
77
|
-
export default {
|
|
78
|
-
// ... other configuration
|
|
79
|
-
authentication: {
|
|
80
|
-
type: "auth0",
|
|
81
|
-
domain: "your-domain.us.auth0.com",
|
|
82
|
-
clientId: "<your-auth0-client-id>",
|
|
83
|
-
audience: "https://your-domain.com/api", // Your Auth0 API identifier
|
|
84
|
-
},
|
|
85
|
-
// ... other configuration
|
|
86
|
-
};
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
Where:
|
|
90
|
-
- **domain**: Your Auth0 domain (found in your application's Basic Information)
|
|
91
|
-
- **clientId**: The Client ID from your Auth0 application settings
|
|
92
|
-
- **audience**: The identifier of the Auth0 API you created (e.g., `https://your-domain.com/api`)
|
|
93
|
-
|
|
94
|
-
</Stepper>
|
|
95
|
-
|
|
96
|
-
## Advanced Configuration
|
|
97
|
-
|
|
98
|
-
### Custom Scopes
|
|
99
|
-
|
|
100
|
-
If you need additional scopes for your API access, you can specify them in the configuration:
|
|
101
|
-
|
|
102
|
-
```typescript
|
|
103
|
-
authentication: {
|
|
104
|
-
type: "auth0",
|
|
105
|
-
domain: "your-domain.us.auth0.com",
|
|
106
|
-
clientId: "<your-auth0-client-id>",
|
|
107
|
-
scopes: ["openid", "profile", "email", "read:api", "write:api"],
|
|
108
|
-
}
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
### Enabling Logout
|
|
112
|
-
|
|
113
|
-
APIToGo supports logout functionality for Auth0 tenants. For tenants created **on or after November
|
|
114
|
-
14, 2023**, logout is automatically enabled through the OIDC
|
|
115
|
-
[RP-Initiated Logout](https://auth0.com/docs/authenticate/login/logout/log-users-out-of-auth0)
|
|
116
|
-
endpoint.
|
|
117
|
-
|
|
118
|
-
To enable logout for your Auth0 application:
|
|
119
|
-
|
|
120
|
-
1. Ensure your **Allowed Logout URLs** are configured in Auth0 (see
|
|
121
|
-
[Configure Auth0 Application](#setup-steps) above)
|
|
122
|
-
2. The logout URL should match your callback URL pattern (e.g., `https://your-site.com/` for
|
|
123
|
-
production)
|
|
124
|
-
|
|
125
|
-
For older tenants, you may need to enable **RP-Initiated Logout** in your tenant settings. See the
|
|
126
|
-
[Auth0 logout documentation](https://auth0.com/docs/authenticate/login/logout/log-users-out-of-auth0)
|
|
127
|
-
for details.
|
|
128
|
-
|
|
129
|
-
### Customizing the Prompt Parameter
|
|
130
|
-
|
|
131
|
-
By default, APIToGo sets `prompt="login"` in the Auth0 authorization request, which forces users to
|
|
132
|
-
re-enter their credentials even if they have a valid session. You can customize this behavior using
|
|
133
|
-
the `options.prompt` configuration:
|
|
134
|
-
|
|
135
|
-
```typescript
|
|
136
|
-
authentication: {
|
|
137
|
-
type: "auth0",
|
|
138
|
-
domain: "your-domain.us.auth0.com",
|
|
139
|
-
clientId: "<your-auth0-client-id>",
|
|
140
|
-
audience: "https://your-domain.com/api",
|
|
141
|
-
options: {
|
|
142
|
-
prompt: "", // Omit the prompt parameter to allow silent authentication
|
|
143
|
-
},
|
|
144
|
-
}
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
Valid values for the `prompt` parameter include:
|
|
148
|
-
|
|
149
|
-
- `"login"` - Force users to re-enter their credentials even if they have a valid session (default)
|
|
150
|
-
- `"consent"` - Force users to consent to authorization even if they previously consented
|
|
151
|
-
- `"select_account"` - Force users to select an account (useful for multi-account scenarios)
|
|
152
|
-
- `"none"` - No prompt is shown; silent authentication only
|
|
153
|
-
- `""` (empty string) - Omit the prompt parameter, allowing Auth0 to handle authentication based on
|
|
154
|
-
session state
|
|
155
|
-
|
|
156
|
-
When the prompt parameter is omitted (empty string), Auth0 will:
|
|
157
|
-
|
|
158
|
-
- Silently authenticate the user if they have a valid session
|
|
159
|
-
- Redirect to the login page if no valid session exists
|
|
160
|
-
|
|
161
|
-
## Troubleshooting
|
|
162
|
-
|
|
163
|
-
### Common Issues
|
|
164
|
-
|
|
165
|
-
1. **Callback URL Mismatch**: Ensure your callback URLs in Auth0 exactly match your site's URL,
|
|
166
|
-
including the `/oauth/callback` path.
|
|
167
|
-
|
|
168
|
-
2. **CORS Errors**: Add your site's domain to the Allowed Web Origins in Auth0.
|
|
169
|
-
|
|
170
|
-
3. **Authentication Loop**: Check that your Auth0 domain includes the protocol (`https://`) but no
|
|
171
|
-
trailing slash.
|
|
172
|
-
|
|
173
|
-
4. **Token Validation Errors**: Ensure the audience in your APIToGo configuration matches the
|
|
174
|
-
identifier of the Auth0 API you created.
|
|
175
|
-
|
|
176
|
-
## Next Steps
|
|
177
|
-
|
|
178
|
-
- Learn about [protecting routes](./authentication.md#protected-routes) in your documentation
|
|
179
|
-
- Explore other [authentication providers](./authentication.md#authentication-providers) supported
|
|
180
|
-
by APIToGo
|
|
181
|
-
- Configure [user permissions](./authentication.md#user-data) based on Auth0 roles
|
|
1
|
+
---
|
|
2
|
+
title: Auth0 Setup
|
|
3
|
+
sidebar_label: Auth0
|
|
4
|
+
description:
|
|
5
|
+
Learn how to set up Auth0 authentication for APIToGo, including application configuration and
|
|
6
|
+
integration steps for secure API documentation access.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
:::caution{title="SPA / advanced"}
|
|
10
|
+
|
|
11
|
+
Portal products on APItoGo use [`dev-portal`](./authentication.md) authentication. Use Auth0 SPA
|
|
12
|
+
integration only for standalone docs sites that talk to Auth0 directly.
|
|
13
|
+
|
|
14
|
+
:::
|
|
15
|
+
|
|
16
|
+
Auth0 is a flexible authentication and authorization platform that integrates seamlessly with
|
|
17
|
+
APIToGo. This guide walks you through setting up Auth0 authentication for your documentation site.
|
|
18
|
+
|
|
19
|
+
## Prerequisites
|
|
20
|
+
|
|
21
|
+
If you don't have an Auth0 account, you can sign up for a
|
|
22
|
+
[free Auth0 account](https://auth0.com/signup) that provides 7,000 monthly active users.
|
|
23
|
+
|
|
24
|
+
## Setup Steps
|
|
25
|
+
|
|
26
|
+
<Stepper>
|
|
27
|
+
|
|
28
|
+
1. **Create Auth0 Application**
|
|
29
|
+
|
|
30
|
+
[Create a new Auth0 application](https://auth0.com/docs/get-started/auth0-overview/create-applications)
|
|
31
|
+
in the Auth0 dashboard:
|
|
32
|
+
- Select type **Single Page Web Applications**
|
|
33
|
+
- Give your application a descriptive name
|
|
34
|
+
|
|
35
|
+
2. **Configure Auth0 Application**
|
|
36
|
+
|
|
37
|
+
In your Auth0 application settings, configure the following:
|
|
38
|
+
|
|
39
|
+
**Application URLs:**
|
|
40
|
+
- **Allowed Callback URLs**:
|
|
41
|
+
- Production: `https://your-site.com/oauth/callback`
|
|
42
|
+
- Preview (wildcard): `https://*.your-domain.com/oauth/callback`
|
|
43
|
+
- Local Development: `http://localhost:3000/oauth/callback`
|
|
44
|
+
- **Allowed Logout URLs**: Same as callback URLs above
|
|
45
|
+
|
|
46
|
+
- **Allowed Web Origins**:
|
|
47
|
+
- Production: `https://your-site.com`
|
|
48
|
+
- Preview (wildcard): `https://*.your-domain.com`
|
|
49
|
+
- Local development: `http://localhost:3000`
|
|
50
|
+
|
|
51
|
+
**Refresh Token Rotation:**
|
|
52
|
+
- **Allow Refresh Token Rotation**: Enabled
|
|
53
|
+
- **Rotation Overlap Period**: 0 seconds (recommended)
|
|
54
|
+
|
|
55
|
+
Keep the default **Refresh Token Expiration** settings unless you have specific requirements.
|
|
56
|
+
|
|
57
|
+
3. Create an Auth0 API:
|
|
58
|
+
- Navigate to the [APIs section](https://manage.auth0.com/#/apis) in the Auth0 dashboard
|
|
59
|
+
- Click **Create API**
|
|
60
|
+
- Set a name (e.g., "APIToGo API") and an identifier (e.g., `https://your-domain.com/api`)
|
|
61
|
+
- Choose **RS256** as the signing algorithm
|
|
62
|
+
- Save the API
|
|
63
|
+
|
|
64
|
+
:::warning
|
|
65
|
+
|
|
66
|
+
This step is important. If you skip creating an API, APIToGo will not be able to validate the
|
|
67
|
+
tokens issued by Auth0, leading to authentication failures.
|
|
68
|
+
|
|
69
|
+
:::
|
|
70
|
+
|
|
71
|
+
4. **Configure APIToGo**
|
|
72
|
+
|
|
73
|
+
Add the Auth0 configuration to your [APIToGo configuration file](./overview.md):
|
|
74
|
+
|
|
75
|
+
```typescript
|
|
76
|
+
// site config
|
|
77
|
+
export default {
|
|
78
|
+
// ... other configuration
|
|
79
|
+
authentication: {
|
|
80
|
+
type: "auth0",
|
|
81
|
+
domain: "your-domain.us.auth0.com",
|
|
82
|
+
clientId: "<your-auth0-client-id>",
|
|
83
|
+
audience: "https://your-domain.com/api", // Your Auth0 API identifier
|
|
84
|
+
},
|
|
85
|
+
// ... other configuration
|
|
86
|
+
};
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Where:
|
|
90
|
+
- **domain**: Your Auth0 domain (found in your application's Basic Information)
|
|
91
|
+
- **clientId**: The Client ID from your Auth0 application settings
|
|
92
|
+
- **audience**: The identifier of the Auth0 API you created (e.g., `https://your-domain.com/api`)
|
|
93
|
+
|
|
94
|
+
</Stepper>
|
|
95
|
+
|
|
96
|
+
## Advanced Configuration
|
|
97
|
+
|
|
98
|
+
### Custom Scopes
|
|
99
|
+
|
|
100
|
+
If you need additional scopes for your API access, you can specify them in the configuration:
|
|
101
|
+
|
|
102
|
+
```typescript
|
|
103
|
+
authentication: {
|
|
104
|
+
type: "auth0",
|
|
105
|
+
domain: "your-domain.us.auth0.com",
|
|
106
|
+
clientId: "<your-auth0-client-id>",
|
|
107
|
+
scopes: ["openid", "profile", "email", "read:api", "write:api"],
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Enabling Logout
|
|
112
|
+
|
|
113
|
+
APIToGo supports logout functionality for Auth0 tenants. For tenants created **on or after November
|
|
114
|
+
14, 2023**, logout is automatically enabled through the OIDC
|
|
115
|
+
[RP-Initiated Logout](https://auth0.com/docs/authenticate/login/logout/log-users-out-of-auth0)
|
|
116
|
+
endpoint.
|
|
117
|
+
|
|
118
|
+
To enable logout for your Auth0 application:
|
|
119
|
+
|
|
120
|
+
1. Ensure your **Allowed Logout URLs** are configured in Auth0 (see
|
|
121
|
+
[Configure Auth0 Application](#setup-steps) above)
|
|
122
|
+
2. The logout URL should match your callback URL pattern (e.g., `https://your-site.com/` for
|
|
123
|
+
production)
|
|
124
|
+
|
|
125
|
+
For older tenants, you may need to enable **RP-Initiated Logout** in your tenant settings. See the
|
|
126
|
+
[Auth0 logout documentation](https://auth0.com/docs/authenticate/login/logout/log-users-out-of-auth0)
|
|
127
|
+
for details.
|
|
128
|
+
|
|
129
|
+
### Customizing the Prompt Parameter
|
|
130
|
+
|
|
131
|
+
By default, APIToGo sets `prompt="login"` in the Auth0 authorization request, which forces users to
|
|
132
|
+
re-enter their credentials even if they have a valid session. You can customize this behavior using
|
|
133
|
+
the `options.prompt` configuration:
|
|
134
|
+
|
|
135
|
+
```typescript
|
|
136
|
+
authentication: {
|
|
137
|
+
type: "auth0",
|
|
138
|
+
domain: "your-domain.us.auth0.com",
|
|
139
|
+
clientId: "<your-auth0-client-id>",
|
|
140
|
+
audience: "https://your-domain.com/api",
|
|
141
|
+
options: {
|
|
142
|
+
prompt: "", // Omit the prompt parameter to allow silent authentication
|
|
143
|
+
},
|
|
144
|
+
}
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Valid values for the `prompt` parameter include:
|
|
148
|
+
|
|
149
|
+
- `"login"` - Force users to re-enter their credentials even if they have a valid session (default)
|
|
150
|
+
- `"consent"` - Force users to consent to authorization even if they previously consented
|
|
151
|
+
- `"select_account"` - Force users to select an account (useful for multi-account scenarios)
|
|
152
|
+
- `"none"` - No prompt is shown; silent authentication only
|
|
153
|
+
- `""` (empty string) - Omit the prompt parameter, allowing Auth0 to handle authentication based on
|
|
154
|
+
session state
|
|
155
|
+
|
|
156
|
+
When the prompt parameter is omitted (empty string), Auth0 will:
|
|
157
|
+
|
|
158
|
+
- Silently authenticate the user if they have a valid session
|
|
159
|
+
- Redirect to the login page if no valid session exists
|
|
160
|
+
|
|
161
|
+
## Troubleshooting
|
|
162
|
+
|
|
163
|
+
### Common Issues
|
|
164
|
+
|
|
165
|
+
1. **Callback URL Mismatch**: Ensure your callback URLs in Auth0 exactly match your site's URL,
|
|
166
|
+
including the `/oauth/callback` path.
|
|
167
|
+
|
|
168
|
+
2. **CORS Errors**: Add your site's domain to the Allowed Web Origins in Auth0.
|
|
169
|
+
|
|
170
|
+
3. **Authentication Loop**: Check that your Auth0 domain includes the protocol (`https://`) but no
|
|
171
|
+
trailing slash.
|
|
172
|
+
|
|
173
|
+
4. **Token Validation Errors**: Ensure the audience in your APIToGo configuration matches the
|
|
174
|
+
identifier of the Auth0 API you created.
|
|
175
|
+
|
|
176
|
+
## Next Steps
|
|
177
|
+
|
|
178
|
+
- Learn about [protecting routes](./authentication.md#protected-routes) in your documentation
|
|
179
|
+
- Explore other [authentication providers](./authentication.md#authentication-providers) supported
|
|
180
|
+
by APIToGo
|
|
181
|
+
- Configure [user permissions](./authentication.md#user-data) based on Auth0 roles
|