@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,117 +1,117 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Clerk Setup
|
|
3
|
-
sidebar_label: Clerk
|
|
4
|
-
description:
|
|
5
|
-
Learn how to set up Clerk authentication for APIToGo, providing a seamless authentication
|
|
6
|
-
experience with modern UI components and extensive customization options.
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
:::caution{title="SPA / advanced"}
|
|
10
|
-
|
|
11
|
-
Portal products on APItoGo use [`dev-portal`](./authentication.md) authentication. Use Clerk SPA
|
|
12
|
-
integration only for standalone docs sites that talk to Clerk directly.
|
|
13
|
-
|
|
14
|
-
:::
|
|
15
|
-
|
|
16
|
-
Clerk is a modern authentication platform that provides beautiful, customizable UI components and a
|
|
17
|
-
developer-friendly experience. This guide walks you through integrating Clerk authentication with
|
|
18
|
-
your APIToGo documentation site.
|
|
19
|
-
|
|
20
|
-
## Prerequisites
|
|
21
|
-
|
|
22
|
-
If you don't have a Clerk account, you can sign up for a [free Clerk account](https://clerk.com/)
|
|
23
|
-
that provides 10,000 monthly active users.
|
|
24
|
-
|
|
25
|
-
## Setup Steps
|
|
26
|
-
|
|
27
|
-
<Stepper>
|
|
28
|
-
|
|
29
|
-
1. **Create a Clerk Application**
|
|
30
|
-
|
|
31
|
-
In the [Clerk Dashboard](https://dashboard.clerk.com/):
|
|
32
|
-
- Click **Create Application**
|
|
33
|
-
- Enter your application name
|
|
34
|
-
- Select your preferred authentication methods (email, social providers, etc.)
|
|
35
|
-
- Click **Create Application**
|
|
36
|
-
|
|
37
|
-
2. **Create a Clerk JWT Template** You need to create a JWT Template so your JWTs include name,
|
|
38
|
-
email and email_verified information.
|
|
39
|
-
|
|
40
|
-
- Navigate to **JWT templates** in the [Clerk Dashboard](https://dashboard.clerk.com/)
|
|
41
|
-
- Create a new template by clicking **Add new template**
|
|
42
|
-
- Pick a name for the template
|
|
43
|
-
- Add the following claims
|
|
44
|
-
```json
|
|
45
|
-
{
|
|
46
|
-
"name": "{{user.full_name}}",
|
|
47
|
-
"email": "{{user.primary_email_address}}",
|
|
48
|
-
"email_verified": "{{user.email_verified}}"
|
|
49
|
-
}
|
|
50
|
-
```
|
|
51
|
-
- Save
|
|
52
|
-
|
|
53
|
-
3. **Configure APIToGo**
|
|
54
|
-
|
|
55
|
-
Get your publishable key from the Clerk dashboard:
|
|
56
|
-
- Navigate to **API Keys** in your Clerk dashboard
|
|
57
|
-
- Copy the **Publishable key**
|
|
58
|
-
|
|
59
|
-
Use the JWT template name defined in the previous section
|
|
60
|
-
|
|
61
|
-
Add the Clerk configuration to your [APIToGo configuration file](./overview.md):
|
|
62
|
-
|
|
63
|
-
```typescript
|
|
64
|
-
// site config
|
|
65
|
-
export default {
|
|
66
|
-
// ... other configuration
|
|
67
|
-
authentication: {
|
|
68
|
-
type: "clerk",
|
|
69
|
-
clerkPubKey: "<your-clerk-publishable-key>",
|
|
70
|
-
jwtTemplateName: "<your-clerk-jwt-template-name>",
|
|
71
|
-
},
|
|
72
|
-
// ... other configuration
|
|
73
|
-
};
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
4. **Configure Redirect URLs (Optional)**
|
|
77
|
-
|
|
78
|
-
If you need custom redirect behavior, configure the allowed redirect URLs in Clerk:
|
|
79
|
-
- Go to **Paths** in your Clerk dashboard
|
|
80
|
-
- Add your production, preview, and local development URLs to the allowed redirect URLs
|
|
81
|
-
- Common patterns:
|
|
82
|
-
- Production: `https://your-site.com/oauth/callback`
|
|
83
|
-
- Preview (wildcard): `https://*.your-domain.com/oauth/callback`
|
|
84
|
-
- Local Development: `http://localhost:3000/oauth/callback`
|
|
85
|
-
|
|
86
|
-
5. **Install Clerk Dependencies**
|
|
87
|
-
|
|
88
|
-
Add `@clerk/clerk-js` to your project dependencies:
|
|
89
|
-
|
|
90
|
-
```bash
|
|
91
|
-
npm install @clerk/clerk-js
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
</Stepper>
|
|
95
|
-
|
|
96
|
-
## Troubleshooting
|
|
97
|
-
|
|
98
|
-
### Common Issues
|
|
99
|
-
|
|
100
|
-
1. **Invalid Publishable Key**: Ensure you're using the publishable key (starts with `pk_`) and not
|
|
101
|
-
the secret key.
|
|
102
|
-
|
|
103
|
-
2. **Authentication Not Working**: Verify that your Clerk application is active and not in
|
|
104
|
-
development mode when deploying to production.
|
|
105
|
-
|
|
106
|
-
3. **Redirect Issues**: Check that your domain is added to the allowed redirect URLs in Clerk if
|
|
107
|
-
using custom redirects.
|
|
108
|
-
|
|
109
|
-
4. **ReferenceError: can't access lexical declaration 'xxx' before initialization**: Make sure you
|
|
110
|
-
have installed Clerk to your project.
|
|
111
|
-
|
|
112
|
-
## Next Steps
|
|
113
|
-
|
|
114
|
-
- Explore [Clerk's documentation](https://clerk.com/docs) for advanced features
|
|
115
|
-
- Learn about [protecting routes](./authentication.md#protected-routes) in your documentation
|
|
116
|
-
- Configure [user roles and permissions](https://clerk.com/docs/organizations/roles-permissions) in
|
|
117
|
-
Clerk
|
|
1
|
+
---
|
|
2
|
+
title: Clerk Setup
|
|
3
|
+
sidebar_label: Clerk
|
|
4
|
+
description:
|
|
5
|
+
Learn how to set up Clerk authentication for APIToGo, providing a seamless authentication
|
|
6
|
+
experience with modern UI components and extensive customization options.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
:::caution{title="SPA / advanced"}
|
|
10
|
+
|
|
11
|
+
Portal products on APItoGo use [`dev-portal`](./authentication.md) authentication. Use Clerk SPA
|
|
12
|
+
integration only for standalone docs sites that talk to Clerk directly.
|
|
13
|
+
|
|
14
|
+
:::
|
|
15
|
+
|
|
16
|
+
Clerk is a modern authentication platform that provides beautiful, customizable UI components and a
|
|
17
|
+
developer-friendly experience. This guide walks you through integrating Clerk authentication with
|
|
18
|
+
your APIToGo documentation site.
|
|
19
|
+
|
|
20
|
+
## Prerequisites
|
|
21
|
+
|
|
22
|
+
If you don't have a Clerk account, you can sign up for a [free Clerk account](https://clerk.com/)
|
|
23
|
+
that provides 10,000 monthly active users.
|
|
24
|
+
|
|
25
|
+
## Setup Steps
|
|
26
|
+
|
|
27
|
+
<Stepper>
|
|
28
|
+
|
|
29
|
+
1. **Create a Clerk Application**
|
|
30
|
+
|
|
31
|
+
In the [Clerk Dashboard](https://dashboard.clerk.com/):
|
|
32
|
+
- Click **Create Application**
|
|
33
|
+
- Enter your application name
|
|
34
|
+
- Select your preferred authentication methods (email, social providers, etc.)
|
|
35
|
+
- Click **Create Application**
|
|
36
|
+
|
|
37
|
+
2. **Create a Clerk JWT Template** You need to create a JWT Template so your JWTs include name,
|
|
38
|
+
email and email_verified information.
|
|
39
|
+
|
|
40
|
+
- Navigate to **JWT templates** in the [Clerk Dashboard](https://dashboard.clerk.com/)
|
|
41
|
+
- Create a new template by clicking **Add new template**
|
|
42
|
+
- Pick a name for the template
|
|
43
|
+
- Add the following claims
|
|
44
|
+
```json
|
|
45
|
+
{
|
|
46
|
+
"name": "{{user.full_name}}",
|
|
47
|
+
"email": "{{user.primary_email_address}}",
|
|
48
|
+
"email_verified": "{{user.email_verified}}"
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
- Save
|
|
52
|
+
|
|
53
|
+
3. **Configure APIToGo**
|
|
54
|
+
|
|
55
|
+
Get your publishable key from the Clerk dashboard:
|
|
56
|
+
- Navigate to **API Keys** in your Clerk dashboard
|
|
57
|
+
- Copy the **Publishable key**
|
|
58
|
+
|
|
59
|
+
Use the JWT template name defined in the previous section
|
|
60
|
+
|
|
61
|
+
Add the Clerk configuration to your [APIToGo configuration file](./overview.md):
|
|
62
|
+
|
|
63
|
+
```typescript
|
|
64
|
+
// site config
|
|
65
|
+
export default {
|
|
66
|
+
// ... other configuration
|
|
67
|
+
authentication: {
|
|
68
|
+
type: "clerk",
|
|
69
|
+
clerkPubKey: "<your-clerk-publishable-key>",
|
|
70
|
+
jwtTemplateName: "<your-clerk-jwt-template-name>",
|
|
71
|
+
},
|
|
72
|
+
// ... other configuration
|
|
73
|
+
};
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
4. **Configure Redirect URLs (Optional)**
|
|
77
|
+
|
|
78
|
+
If you need custom redirect behavior, configure the allowed redirect URLs in Clerk:
|
|
79
|
+
- Go to **Paths** in your Clerk dashboard
|
|
80
|
+
- Add your production, preview, and local development URLs to the allowed redirect URLs
|
|
81
|
+
- Common patterns:
|
|
82
|
+
- Production: `https://your-site.com/oauth/callback`
|
|
83
|
+
- Preview (wildcard): `https://*.your-domain.com/oauth/callback`
|
|
84
|
+
- Local Development: `http://localhost:3000/oauth/callback`
|
|
85
|
+
|
|
86
|
+
5. **Install Clerk Dependencies**
|
|
87
|
+
|
|
88
|
+
Add `@clerk/clerk-js` to your project dependencies:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
npm install @clerk/clerk-js
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
</Stepper>
|
|
95
|
+
|
|
96
|
+
## Troubleshooting
|
|
97
|
+
|
|
98
|
+
### Common Issues
|
|
99
|
+
|
|
100
|
+
1. **Invalid Publishable Key**: Ensure you're using the publishable key (starts with `pk_`) and not
|
|
101
|
+
the secret key.
|
|
102
|
+
|
|
103
|
+
2. **Authentication Not Working**: Verify that your Clerk application is active and not in
|
|
104
|
+
development mode when deploying to production.
|
|
105
|
+
|
|
106
|
+
3. **Redirect Issues**: Check that your domain is added to the allowed redirect URLs in Clerk if
|
|
107
|
+
using custom redirects.
|
|
108
|
+
|
|
109
|
+
4. **ReferenceError: can't access lexical declaration 'xxx' before initialization**: Make sure you
|
|
110
|
+
have installed Clerk to your project.
|
|
111
|
+
|
|
112
|
+
## Next Steps
|
|
113
|
+
|
|
114
|
+
- Explore [Clerk's documentation](https://clerk.com/docs) for advanced features
|
|
115
|
+
- Learn about [protecting routes](./authentication.md#protected-routes) in your documentation
|
|
116
|
+
- Configure [user roles and permissions](https://clerk.com/docs/organizations/roles-permissions) in
|
|
117
|
+
Clerk
|
|
@@ -1,69 +1,69 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: Firebase Setup
|
|
3
|
-
sidebar_label: Firebase
|
|
4
|
-
description:
|
|
5
|
-
Learn how to set up Firebase Authentication for APIToGo, leveraging Google's secure authentication
|
|
6
|
-
infrastructure with multiple sign-in providers.
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
:::caution{title="SPA / advanced"}
|
|
10
|
-
|
|
11
|
-
Portal products on APItoGo use [`dev-portal`](./authentication.md) authentication. Use Firebase SPA
|
|
12
|
-
integration only for standalone docs sites that talk to Firebase directly.
|
|
13
|
-
|
|
14
|
-
:::
|
|
15
|
-
|
|
16
|
-
Firebase Authentication provides a comprehensive identity solution from Google, supporting
|
|
17
|
-
email/password authentication and federated identity providers like Google, Facebook, Twitter, and
|
|
18
|
-
more. This guide shows you how to integrate Firebase Authentication with your APIToGo documentation
|
|
19
|
-
site.
|
|
20
|
-
|
|
21
|
-
## Prerequisites
|
|
22
|
-
|
|
23
|
-
- A Google account to access Firebase Console
|
|
24
|
-
- A Firebase project (free tier available)
|
|
25
|
-
- Basic knowledge of Firebase configuration
|
|
26
|
-
|
|
27
|
-
## Setup Firebase
|
|
28
|
-
|
|
29
|
-
1. Go to the [Firebase Console](https://console.firebase.google.com/):
|
|
30
|
-
2. Click **Create a project** (or select an existing project)
|
|
31
|
-
3. Make sure authentication is enabled. Choose your preferred authentication providers.
|
|
32
|
-
4. Configure Authorized Domains, add your domains where the authentication will be used.
|
|
33
|
-
5. **Get Your Firebase Configuration**
|
|
34
|
-
- Go to **Project settings**
|
|
35
|
-
- Scroll to **Your apps** section
|
|
36
|
-
- Click **Add app** → **Web** if you haven't already
|
|
37
|
-
- Register your app with a nickname
|
|
38
|
-
- Copy the Firebase configuration object
|
|
39
|
-
|
|
40
|
-
## Configure APIToGo
|
|
41
|
-
|
|
42
|
-
Add the Firebase configuration to your [APIToGo configuration file](./overview.md):
|
|
43
|
-
|
|
44
|
-
```typescript title="config"
|
|
45
|
-
export default {
|
|
46
|
-
authentication: {
|
|
47
|
-
type: "firebase",
|
|
48
|
-
// Replace these with your Firebase project configuration
|
|
49
|
-
// Get these values from Firebase Console > Project Settings
|
|
50
|
-
apiKey: "<insert your API key here>",
|
|
51
|
-
authDomain: "your-domain.firebaseapp.com",
|
|
52
|
-
projectId: "your-project-id",
|
|
53
|
-
appId: "1:296819355813:web:91d29f11cac6f073595d4c",
|
|
54
|
-
// Optional fields
|
|
55
|
-
storageBucket: "your-project.firebasestorage.app",
|
|
56
|
-
messagingSenderId: "296819355813",
|
|
57
|
-
measurementId: "G-12W6TTNR75",
|
|
58
|
-
// Optional: specify which providers to show in the sign-in UI
|
|
59
|
-
// Available providers: "google", "github", "facebook", "twitter",
|
|
60
|
-
// "microsoft", "apple", "yahoo", "password", "phone"
|
|
61
|
-
// If not specified, all enabled providers in Firebase will be available
|
|
62
|
-
providers: ["google", "github", "password"],
|
|
63
|
-
// Optional: configure redirect URLs after authentication
|
|
64
|
-
redirectToAfterSignIn: "/docs",
|
|
65
|
-
redirectToAfterSignUp: "/getting-started",
|
|
66
|
-
redirectToAfterSignOut: "/",
|
|
67
|
-
},
|
|
68
|
-
};
|
|
69
|
-
```
|
|
1
|
+
---
|
|
2
|
+
title: Firebase Setup
|
|
3
|
+
sidebar_label: Firebase
|
|
4
|
+
description:
|
|
5
|
+
Learn how to set up Firebase Authentication for APIToGo, leveraging Google's secure authentication
|
|
6
|
+
infrastructure with multiple sign-in providers.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
:::caution{title="SPA / advanced"}
|
|
10
|
+
|
|
11
|
+
Portal products on APItoGo use [`dev-portal`](./authentication.md) authentication. Use Firebase SPA
|
|
12
|
+
integration only for standalone docs sites that talk to Firebase directly.
|
|
13
|
+
|
|
14
|
+
:::
|
|
15
|
+
|
|
16
|
+
Firebase Authentication provides a comprehensive identity solution from Google, supporting
|
|
17
|
+
email/password authentication and federated identity providers like Google, Facebook, Twitter, and
|
|
18
|
+
more. This guide shows you how to integrate Firebase Authentication with your APIToGo documentation
|
|
19
|
+
site.
|
|
20
|
+
|
|
21
|
+
## Prerequisites
|
|
22
|
+
|
|
23
|
+
- A Google account to access Firebase Console
|
|
24
|
+
- A Firebase project (free tier available)
|
|
25
|
+
- Basic knowledge of Firebase configuration
|
|
26
|
+
|
|
27
|
+
## Setup Firebase
|
|
28
|
+
|
|
29
|
+
1. Go to the [Firebase Console](https://console.firebase.google.com/):
|
|
30
|
+
2. Click **Create a project** (or select an existing project)
|
|
31
|
+
3. Make sure authentication is enabled. Choose your preferred authentication providers.
|
|
32
|
+
4. Configure Authorized Domains, add your domains where the authentication will be used.
|
|
33
|
+
5. **Get Your Firebase Configuration**
|
|
34
|
+
- Go to **Project settings**
|
|
35
|
+
- Scroll to **Your apps** section
|
|
36
|
+
- Click **Add app** → **Web** if you haven't already
|
|
37
|
+
- Register your app with a nickname
|
|
38
|
+
- Copy the Firebase configuration object
|
|
39
|
+
|
|
40
|
+
## Configure APIToGo
|
|
41
|
+
|
|
42
|
+
Add the Firebase configuration to your [APIToGo configuration file](./overview.md):
|
|
43
|
+
|
|
44
|
+
```typescript title="config"
|
|
45
|
+
export default {
|
|
46
|
+
authentication: {
|
|
47
|
+
type: "firebase",
|
|
48
|
+
// Replace these with your Firebase project configuration
|
|
49
|
+
// Get these values from Firebase Console > Project Settings
|
|
50
|
+
apiKey: "<insert your API key here>",
|
|
51
|
+
authDomain: "your-domain.firebaseapp.com",
|
|
52
|
+
projectId: "your-project-id",
|
|
53
|
+
appId: "1:296819355813:web:91d29f11cac6f073595d4c",
|
|
54
|
+
// Optional fields
|
|
55
|
+
storageBucket: "your-project.firebasestorage.app",
|
|
56
|
+
messagingSenderId: "296819355813",
|
|
57
|
+
measurementId: "G-12W6TTNR75",
|
|
58
|
+
// Optional: specify which providers to show in the sign-in UI
|
|
59
|
+
// Available providers: "google", "github", "facebook", "twitter",
|
|
60
|
+
// "microsoft", "apple", "yahoo", "password", "phone"
|
|
61
|
+
// If not specified, all enabled providers in Firebase will be available
|
|
62
|
+
providers: ["google", "github", "password"],
|
|
63
|
+
// Optional: configure redirect URLs after authentication
|
|
64
|
+
redirectToAfterSignIn: "/docs",
|
|
65
|
+
redirectToAfterSignUp: "/getting-started",
|
|
66
|
+
redirectToAfterSignOut: "/",
|
|
67
|
+
},
|
|
68
|
+
};
|
|
69
|
+
```
|
|
@@ -1,143 +1,143 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: PingFederate Setup
|
|
3
|
-
sidebar_label: PingFederate
|
|
4
|
-
description:
|
|
5
|
-
Learn how to set up PingFederate authentication for APIToGo using OpenID Connect for
|
|
6
|
-
enterprise-grade single sign-on.
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
:::caution{title="SPA / advanced"}
|
|
10
|
-
|
|
11
|
-
Portal products on APItoGo use [`dev-portal`](./authentication.md) authentication. Use PingFederate
|
|
12
|
-
SPA integration only for standalone docs sites that talk to PingFederate directly.
|
|
13
|
-
|
|
14
|
-
:::
|
|
15
|
-
|
|
16
|
-
PingFederate is an enterprise federation server that enables secure single sign-on (SSO) and API
|
|
17
|
-
security for organizations. This guide walks you through integrating PingFederate with APIToGo using
|
|
18
|
-
OpenID Connect.
|
|
19
|
-
|
|
20
|
-
## Prerequisites
|
|
21
|
-
|
|
22
|
-
- Access to a PingFederate server (version 9.0 or later recommended)
|
|
23
|
-
- Administrative access to configure OAuth clients in PingFederate
|
|
24
|
-
- Your PingFederate server's base URL
|
|
25
|
-
|
|
26
|
-
## Setup Steps
|
|
27
|
-
|
|
28
|
-
<Stepper>
|
|
29
|
-
|
|
30
|
-
1. **Create an OAuth Client in PingFederate**
|
|
31
|
-
|
|
32
|
-
In the PingFederate administrative console:
|
|
33
|
-
- Navigate to **Applications** → **OAuth** → **Clients**
|
|
34
|
-
- Click **Add Client**
|
|
35
|
-
- Configure the client:
|
|
36
|
-
- **Client ID**: Choose a unique identifier (e.g., `apitogo-docs`)
|
|
37
|
-
- **Client Authentication**: Select **None (Public Client)**
|
|
38
|
-
- **Grant Types**: Enable **Authorization Code** and **Refresh Token**
|
|
39
|
-
- **Redirect URIs**:
|
|
40
|
-
- Production: `https://your-site.com/oauth/callback`
|
|
41
|
-
- Preview (wildcard): `https://*.your-domain.com/oauth/callback`
|
|
42
|
-
- Local Development: `http://localhost:3000/oauth/callback`
|
|
43
|
-
|
|
44
|
-
2. **Configure OpenID Connect Settings**
|
|
45
|
-
|
|
46
|
-
Still in the OAuth client configuration:
|
|
47
|
-
- Enable **OpenID Connect**
|
|
48
|
-
- Configure scopes:
|
|
49
|
-
- Enable `openid`, `profile`, and `email` (minimum required)
|
|
50
|
-
- Add any custom scopes your organization requires
|
|
51
|
-
- **ID Token Signing Algorithm**: RS256 (recommended)
|
|
52
|
-
- **Access Token Manager**: Select or create an appropriate token manager
|
|
53
|
-
- Save the configuration
|
|
54
|
-
|
|
55
|
-
3. **Configure APIToGo**
|
|
56
|
-
|
|
57
|
-
Add the PingFederate configuration to your [APIToGo configuration file](./overview.md):
|
|
58
|
-
|
|
59
|
-
```typescript
|
|
60
|
-
// site config
|
|
61
|
-
export default {
|
|
62
|
-
// ... other configuration
|
|
63
|
-
authentication: {
|
|
64
|
-
type: "openid",
|
|
65
|
-
clientId: "apitogo-docs", // Your OAuth client ID
|
|
66
|
-
issuer: "https://pingfederate.your-domain.com", // Your PingFederate base URL
|
|
67
|
-
scopes: ["openid", "profile", "email"], // Optional: add custom scopes
|
|
68
|
-
},
|
|
69
|
-
// ... other configuration
|
|
70
|
-
};
|
|
71
|
-
```
|
|
72
|
-
|
|
73
|
-
</Stepper>
|
|
74
|
-
|
|
75
|
-
## Configuration Options
|
|
76
|
-
|
|
77
|
-
### Custom Scopes
|
|
78
|
-
|
|
79
|
-
If your organization uses custom scopes for authorization, include them in the configuration:
|
|
80
|
-
|
|
81
|
-
```typescript
|
|
82
|
-
authentication: {
|
|
83
|
-
type: "openid",
|
|
84
|
-
clientId: "apitogo-docs",
|
|
85
|
-
issuer: "https://pingfederate.your-domain.com",
|
|
86
|
-
scopes: ["openid", "profile", "email", "groups", "roles", "api:read"],
|
|
87
|
-
}
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
## Advanced Configuration
|
|
91
|
-
|
|
92
|
-
### CORS Configuration
|
|
93
|
-
|
|
94
|
-
Configure CORS in PingFederate for your documentation site:
|
|
95
|
-
|
|
96
|
-
1. Navigate to **System** → **Server Configuration** → **Cross-Origin Resource Sharing**
|
|
97
|
-
2. Add your site's domain to the allowed origins:
|
|
98
|
-
- `https://your-site.com`
|
|
99
|
-
- `http://localhost:3000` (for local development)
|
|
100
|
-
|
|
101
|
-
### Attribute Mapping
|
|
102
|
-
|
|
103
|
-
PingFederate can map user attributes from various sources. Ensure these standard claims are mapped:
|
|
104
|
-
|
|
105
|
-
1. Go to **OAuth** → **Access Token Management** → **Your Token Manager**
|
|
106
|
-
2. Configure attribute mappings:
|
|
107
|
-
- `sub` → User's unique identifier
|
|
108
|
-
- `name` → User's display name
|
|
109
|
-
- `email` → User's email address
|
|
110
|
-
- `picture` → User's profile picture URL (if available)
|
|
111
|
-
|
|
112
|
-
## Troubleshooting
|
|
113
|
-
|
|
114
|
-
### Common Issues
|
|
115
|
-
|
|
116
|
-
1. **Discovery Endpoint Not Found**: Ensure your issuer URL is correct and accessible. The OpenID
|
|
117
|
-
Connect discovery endpoint should be available at
|
|
118
|
-
`https://your-pingfederate-server/.well-known/openid-configuration`.
|
|
119
|
-
|
|
120
|
-
2. **Invalid Client Configuration**: Verify that the client ID matches exactly and that the redirect
|
|
121
|
-
URIs are properly configured in PingFederate.
|
|
122
|
-
|
|
123
|
-
3. **CORS Errors**: Check that your site's domain is added to PingFederate's CORS configuration.
|
|
124
|
-
|
|
125
|
-
4. **Missing User Attributes**: Ensure attribute mappings are configured in your Access Token
|
|
126
|
-
Manager.
|
|
127
|
-
|
|
128
|
-
5. **Token Validation Errors**: Verify that your PingFederate server's certificates are valid and
|
|
129
|
-
that clock synchronization is accurate.
|
|
130
|
-
|
|
131
|
-
## Security Considerations
|
|
132
|
-
|
|
133
|
-
- Always use HTTPS for production deployments
|
|
134
|
-
- Regularly rotate signing certificates in PingFederate
|
|
135
|
-
- Configure appropriate session timeouts
|
|
136
|
-
- Review and audit OAuth client configurations periodically
|
|
137
|
-
|
|
138
|
-
## Next Steps
|
|
139
|
-
|
|
140
|
-
- Review [PingFederate documentation](https://docs.pingidentity.com/pingfederate/) for advanced
|
|
141
|
-
features
|
|
142
|
-
- Learn about [protecting routes](./authentication.md#protected-routes) in your documentation
|
|
143
|
-
- Configure group-based access control using PingFederate claims
|
|
1
|
+
---
|
|
2
|
+
title: PingFederate Setup
|
|
3
|
+
sidebar_label: PingFederate
|
|
4
|
+
description:
|
|
5
|
+
Learn how to set up PingFederate authentication for APIToGo using OpenID Connect for
|
|
6
|
+
enterprise-grade single sign-on.
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
:::caution{title="SPA / advanced"}
|
|
10
|
+
|
|
11
|
+
Portal products on APItoGo use [`dev-portal`](./authentication.md) authentication. Use PingFederate
|
|
12
|
+
SPA integration only for standalone docs sites that talk to PingFederate directly.
|
|
13
|
+
|
|
14
|
+
:::
|
|
15
|
+
|
|
16
|
+
PingFederate is an enterprise federation server that enables secure single sign-on (SSO) and API
|
|
17
|
+
security for organizations. This guide walks you through integrating PingFederate with APIToGo using
|
|
18
|
+
OpenID Connect.
|
|
19
|
+
|
|
20
|
+
## Prerequisites
|
|
21
|
+
|
|
22
|
+
- Access to a PingFederate server (version 9.0 or later recommended)
|
|
23
|
+
- Administrative access to configure OAuth clients in PingFederate
|
|
24
|
+
- Your PingFederate server's base URL
|
|
25
|
+
|
|
26
|
+
## Setup Steps
|
|
27
|
+
|
|
28
|
+
<Stepper>
|
|
29
|
+
|
|
30
|
+
1. **Create an OAuth Client in PingFederate**
|
|
31
|
+
|
|
32
|
+
In the PingFederate administrative console:
|
|
33
|
+
- Navigate to **Applications** → **OAuth** → **Clients**
|
|
34
|
+
- Click **Add Client**
|
|
35
|
+
- Configure the client:
|
|
36
|
+
- **Client ID**: Choose a unique identifier (e.g., `apitogo-docs`)
|
|
37
|
+
- **Client Authentication**: Select **None (Public Client)**
|
|
38
|
+
- **Grant Types**: Enable **Authorization Code** and **Refresh Token**
|
|
39
|
+
- **Redirect URIs**:
|
|
40
|
+
- Production: `https://your-site.com/oauth/callback`
|
|
41
|
+
- Preview (wildcard): `https://*.your-domain.com/oauth/callback`
|
|
42
|
+
- Local Development: `http://localhost:3000/oauth/callback`
|
|
43
|
+
|
|
44
|
+
2. **Configure OpenID Connect Settings**
|
|
45
|
+
|
|
46
|
+
Still in the OAuth client configuration:
|
|
47
|
+
- Enable **OpenID Connect**
|
|
48
|
+
- Configure scopes:
|
|
49
|
+
- Enable `openid`, `profile`, and `email` (minimum required)
|
|
50
|
+
- Add any custom scopes your organization requires
|
|
51
|
+
- **ID Token Signing Algorithm**: RS256 (recommended)
|
|
52
|
+
- **Access Token Manager**: Select or create an appropriate token manager
|
|
53
|
+
- Save the configuration
|
|
54
|
+
|
|
55
|
+
3. **Configure APIToGo**
|
|
56
|
+
|
|
57
|
+
Add the PingFederate configuration to your [APIToGo configuration file](./overview.md):
|
|
58
|
+
|
|
59
|
+
```typescript
|
|
60
|
+
// site config
|
|
61
|
+
export default {
|
|
62
|
+
// ... other configuration
|
|
63
|
+
authentication: {
|
|
64
|
+
type: "openid",
|
|
65
|
+
clientId: "apitogo-docs", // Your OAuth client ID
|
|
66
|
+
issuer: "https://pingfederate.your-domain.com", // Your PingFederate base URL
|
|
67
|
+
scopes: ["openid", "profile", "email"], // Optional: add custom scopes
|
|
68
|
+
},
|
|
69
|
+
// ... other configuration
|
|
70
|
+
};
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
</Stepper>
|
|
74
|
+
|
|
75
|
+
## Configuration Options
|
|
76
|
+
|
|
77
|
+
### Custom Scopes
|
|
78
|
+
|
|
79
|
+
If your organization uses custom scopes for authorization, include them in the configuration:
|
|
80
|
+
|
|
81
|
+
```typescript
|
|
82
|
+
authentication: {
|
|
83
|
+
type: "openid",
|
|
84
|
+
clientId: "apitogo-docs",
|
|
85
|
+
issuer: "https://pingfederate.your-domain.com",
|
|
86
|
+
scopes: ["openid", "profile", "email", "groups", "roles", "api:read"],
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## Advanced Configuration
|
|
91
|
+
|
|
92
|
+
### CORS Configuration
|
|
93
|
+
|
|
94
|
+
Configure CORS in PingFederate for your documentation site:
|
|
95
|
+
|
|
96
|
+
1. Navigate to **System** → **Server Configuration** → **Cross-Origin Resource Sharing**
|
|
97
|
+
2. Add your site's domain to the allowed origins:
|
|
98
|
+
- `https://your-site.com`
|
|
99
|
+
- `http://localhost:3000` (for local development)
|
|
100
|
+
|
|
101
|
+
### Attribute Mapping
|
|
102
|
+
|
|
103
|
+
PingFederate can map user attributes from various sources. Ensure these standard claims are mapped:
|
|
104
|
+
|
|
105
|
+
1. Go to **OAuth** → **Access Token Management** → **Your Token Manager**
|
|
106
|
+
2. Configure attribute mappings:
|
|
107
|
+
- `sub` → User's unique identifier
|
|
108
|
+
- `name` → User's display name
|
|
109
|
+
- `email` → User's email address
|
|
110
|
+
- `picture` → User's profile picture URL (if available)
|
|
111
|
+
|
|
112
|
+
## Troubleshooting
|
|
113
|
+
|
|
114
|
+
### Common Issues
|
|
115
|
+
|
|
116
|
+
1. **Discovery Endpoint Not Found**: Ensure your issuer URL is correct and accessible. The OpenID
|
|
117
|
+
Connect discovery endpoint should be available at
|
|
118
|
+
`https://your-pingfederate-server/.well-known/openid-configuration`.
|
|
119
|
+
|
|
120
|
+
2. **Invalid Client Configuration**: Verify that the client ID matches exactly and that the redirect
|
|
121
|
+
URIs are properly configured in PingFederate.
|
|
122
|
+
|
|
123
|
+
3. **CORS Errors**: Check that your site's domain is added to PingFederate's CORS configuration.
|
|
124
|
+
|
|
125
|
+
4. **Missing User Attributes**: Ensure attribute mappings are configured in your Access Token
|
|
126
|
+
Manager.
|
|
127
|
+
|
|
128
|
+
5. **Token Validation Errors**: Verify that your PingFederate server's certificates are valid and
|
|
129
|
+
that clock synchronization is accurate.
|
|
130
|
+
|
|
131
|
+
## Security Considerations
|
|
132
|
+
|
|
133
|
+
- Always use HTTPS for production deployments
|
|
134
|
+
- Regularly rotate signing certificates in PingFederate
|
|
135
|
+
- Configure appropriate session timeouts
|
|
136
|
+
- Review and audit OAuth client configurations periodically
|
|
137
|
+
|
|
138
|
+
## Next Steps
|
|
139
|
+
|
|
140
|
+
- Review [PingFederate documentation](https://docs.pingidentity.com/pingfederate/) for advanced
|
|
141
|
+
features
|
|
142
|
+
- Learn about [protecting routes](./authentication.md#protected-routes) in your documentation
|
|
143
|
+
- Configure group-based access control using PingFederate claims
|