diff --git a/docs/quickstart/sdks.mdx b/docs/quickstart/sdks.mdx deleted file mode 100644 index cdc744120..000000000 --- a/docs/quickstart/sdks.mdx +++ /dev/null @@ -1,11 +0,0 @@ ---- -id: sdks -title: SDK quickstarts ---- - -```mdx-code-block -import DocCardList from '@theme/DocCardList'; -import {useCurrentSidebarCategory} from '@docusaurus/theme-common'; - - -``` diff --git a/docusaurus.config.ts b/docusaurus.config.ts index 69d5e3353..6c647dad2 100644 --- a/docusaurus.config.ts +++ b/docusaurus.config.ts @@ -109,13 +109,13 @@ const config: Config = { position: "left", }, { - to: "/docs/oauth2-oidc", + to: "/docs/getting-started/ory-network-oauth2", // to: "/docs/federation", // TODO: Use this route label: "Federation", position: "left", }, { - to: "/docs/keto", + to: "/docs/guides/permissions/overview", // to: "/docs/permissions", // TODO: Use this route label: "Permissions", position: "left", @@ -247,10 +247,10 @@ const config: Config = { "@docusaurus/plugin-client-redirects", { redirects: [ - // { - // from: ['/','/docs','/docs/'], - // to: '/docs/welcome' - // } + { + from: "/quickstart/sdks", + to: "/sdk", + }, ], }, ], diff --git a/src/sidebar.ts b/src/sidebar.ts index b2ac54a3a..e48be77e4 100644 --- a/src/sidebar.ts +++ b/src/sidebar.ts @@ -17,6 +17,53 @@ const homeLink: SidebarItem = { label: "Go to Main Page", } +const openIdSSO: SidebarItemConfig = { + type: "category", + label: "OpenID Connect SSO", + link: { + type: "doc", + id: "guides/oauth2-openid-connect", + }, + items: [ + "kratos/social-signin/overview", + { + type: "category", + label: "Social Sign-in Providers", + items: [ + "kratos/social-signin/generic", + "kratos/social-signin/ory", + "kratos/social-signin/google", + "kratos/social-signin/facebook", + "kratos/social-signin/microsoft", + "kratos/social-signin/github", + "kratos/social-signin/apple", + "kratos/social-signin/gitlab", + "kratos/social-signin/auth0", + "kratos/social-signin/salesforce", + "kratos/social-signin/slack", + "kratos/social-signin/spotify", + "kratos/social-signin/discord", + "kratos/social-signin/twitch", + "kratos/social-signin/netid", + "kratos/social-signin/yandex", + "kratos/social-signin/vk", + "kratos/social-signin/dingtalk", + "kratos/social-signin/lark", + "kratos/social-signin/patreon", + "kratos/social-signin/linkedin", + "kratos/social-signin/x-twitter", + ], + }, + "kratos/social-signin/data-mapping", + "kratos/social-signin/account-linking", + "kratos/social-signin/get-tokens", + "identities/sign-in/social-sign-in/redirect-url", + "kratos/social-signin/native-apps", + "kratos/social-signin/oidc-pkce", + "kratos/social-signin/fedcm", + ], +} + const referenceSidebar: ExtendSidebar = [ homeLink, { @@ -85,16 +132,11 @@ const referenceSidebar: ExtendSidebar = [ ] const quickstartSidebar = (flat: boolean): ExtendSidebar => { - const items = [] - if (!flat) { - items.push(homeLink) - } - return [ - ...items, + homeLink, { type: "category", - label: "User authentication", + label: "Start", collapsed: false, collapsible: false, link: { @@ -113,68 +155,12 @@ const quickstartSidebar = (flat: boolean): ExtendSidebar => { "getting-started/integrate-auth/nextjs", "getting-started/integrate-auth/flutter-web-redirect", "getting-started/integrate-auth/dotnet", - ], - }, - { - type: "category", - label: "Permissions and relationships", - collapsed: false, - collapsible: false, - link: { - type: "doc", - id: "guides/permissions/overview", - }, - items: flat - ? [] - : ["keto/examples/olymp-file-sharing", "keto/guides/rbac"], - }, - { - type: "category", - label: "OAuth2 and OpenID", - collapsed: false, - collapsible: false, - link: { - type: "doc", - id: "guides/oauth2-openid-connect", - }, - items: flat - ? [] - : [ - "getting-started/ory-network-oauth2", - "getting-started/oauth2-openid/expressjs", - ], - }, - { - type: "category", - label: "Software Development Kits", - collapsed: false, - collapsible: false, - link: { - type: "doc", - id: "quickstart/sdks", - }, - items: flat - ? [] - : [ - { - type: "category", - label: "Identity Management", - items: ["kratos/sdk/go"], - }, - { - type: "category", - label: "OAuth2 & OpenID Connect", - items: ["hydra/sdk/js", "hydra/sdk/go"], - }, - { - type: "category", - label: "Permissions", - items: ["keto/sdk/go", "keto/sdk/python"], - }, + "getting-started/local-development", ], }, ] } + const guidesSidebar = (flat: boolean): ExtendSidebar => { const items = [] if (!flat) { @@ -203,6 +189,10 @@ const guidesSidebar = (flat: boolean): ExtendSidebar => { { type: "category", label: "OpenID Connect SSO", + link: { + type: "doc", + id: "guides/oauth2-openid-connect", + }, items: [ "kratos/social-signin/overview", { @@ -500,72 +490,204 @@ const identitiesSidebar = [ "security-model", "identities/native-browser", "concepts/redirects", + "kratos/hooks/configure-hooks", ], }, { type: "category", - label: "Self-service user flows", + label: "Guides", collapsed: false, collapsible: false, - link: { - type: "doc", - id: "kratos/self-service", - }, items: [ - "kratos/concepts/browser-redirect-flow-completion", - "kratos/self-service/flows/user-registration", - "kratos/self-service/flows/user-login", - "kratos/self-service/flows/user-logout", - "kratos/self-service/flows/user-settings", - "kratos/self-service/flows/verify-email-account-activation", - "kratos/self-service/flows/account-recovery-password-reset", - "kratos/self-service/flows/user-facing-errors", + { + type: "category", + label: "Authentication", + items: [ + "kratos/passwordless/passwordless", + "kratos/passwordless/one-time-code", + "kratos/passwordless/passkeys", + "kratos/organizations/organizations", + { + type: "category", + label: "Credentials", + link: { + type: "doc", + id: "kratos/concepts/credentials", + }, + items: [ + "kratos/concepts/credentials/username-email-password", + "concepts/password-policy", + ], + }, + "kratos/emails-sms/custom-email-templates", + ], + }, + openIdSSO, + { + type: "category", + label: "Flows", + link: { + type: "doc", + id: "kratos/self-service", + }, + items: [ + "kratos/concepts/browser-redirect-flow-completion", + "kratos/self-service/flows/user-registration", + "kratos/self-service/flows/user-login", + "kratos/self-service/flows/user-logout", + "kratos/self-service/flows/user-settings", + "kratos/self-service/flows/verify-email-account-activation", + "kratos/self-service/flows/account-recovery-password-reset", + "kratos/self-service/flows/user-facing-errors", + ], + }, + { + type: "category", + label: "Session management", + link: { + type: "doc", + id: "kratos/session-management/overview", + }, + items: [ + "identities/sign-in/check-session", + "kratos/session-management/session-lifespan", + "kratos/session-management/refresh-extend-sessions", + "kratos/session-management/revoke-sessions-hook", + "identities/session-to-jwt-cors", + "concepts/cache", + ], + }, + { + type: "category", + label: "Multi-factor authentication", + link: { + type: "doc", + id: "kratos/mfa/overview", + }, + items: [ + "kratos/mfa/lookup-secrets", + "kratos/mfa/totp", + "kratos/mfa/webauthn-fido-yubikey", + "kratos/mfa/mfa-via-sms", + "kratos/mfa/step-up-authentication", + ], + }, + { + type: "category", + label: "Ory Actions", + link: { + type: "doc", + id: "guides/integrate-with-ory-cloud-through-webhooks", + }, + items: [ + { + type: "category", + label: "Identity management", + items: [ + "identities/sign-in/actions", + "actions/revoke-active-sessions", + "actions/session", + "actions/require-verified-address", + { + type: "category", + label: "Integrations", + items: [ + "actions/integrations/hubspot", + "actions/integrations/mailchimp", + "actions/integrations/segment", + ], + }, + ], + }, + ], + }, + { + type: "category", + label: "Identity management", + link: { + type: "doc", + id: "kratos/manage-identities/overview", + }, + items: [ + "kratos/manage-identities/create-users-identities", + "kratos/manage-identities/import-user-accounts-identities", + "identities/model/identity-state", + "kratos/manage-identities/invite-users", + "kratos/manage-identities/account-recovery", + "kratos/manage-identities/export-user-accounts-identities", + ], + }, + { + type: "category", + label: "Identity schema", + link: { + type: "doc", + id: "kratos/manage-identities/identity-schema", + }, + items: [ + "kratos/manage-identities/managing-users-identities-metadata", + "identities/model/manage-identity-schema", + "kratos/manage-identities/customize-identity-schema", + "kratos/manage-identities/best-practices", + ], + }, + + { + type: "category", + label: "User interface", + link: { + type: "doc", + id: "kratos/bring-your-own-ui/custom-ui-overview", + }, + items: [ + "account-experience/index", + "kratos/bring-your-own-ui/configure-ory-to-use-your-ui", + { + type: "category", + label: "Build your own UI", + link: { + type: "doc", + id: "getting-started/custom-ui", + }, + items: [ + "kratos/bring-your-own-ui/custom-ui-basic-integration", + "kratos/bring-your-own-ui/custom-ui-advanced-integration", + "kratos/bring-your-own-ui/custom-ui-ory-elements", + "kratos/concepts/ui-user-interface", + ], + }, + ], + }, ], }, { type: "category", - label: "Authentication", - collapsed: false, - collapsible: false, - link: { - type: "doc", - id: "kratos/concepts/credentials", - }, + label: "Configuration", items: [ - "concepts/password-policy", - "kratos/passwordless/passwordless", - "kratos/mfa/overview", + "identities/sign-in/two-step-registration", + "identities/sign-in/identifier-first-authentication", + "identities/sign-in/login-hint", + "identities/sign-in/actions", ], }, +] + +const oauth2Sidebar = [ + homeLink, { type: "category", - label: "User interface", + label: "Start", collapsed: false, collapsible: false, link: { type: "doc", - id: "kratos/bring-your-own-ui/custom-ui-overview", + id: "getting-started/ory-network-oauth2", }, items: [ - "account-experience/index", - "kratos/bring-your-own-ui/configure-ory-to-use-your-ui", + "getting-started/oauth2-openid/expressjs", + "hydra/guides/using-oauth2", ], }, - { - type: "category", - label: "Send Emails & SMS", - collapsed: false, - collapsible: false, - link: { - type: "doc", - id: "kratos/emails-sms/custom-email-templates", - }, - items: ["kratos/emails-sms/custom-email-templates"], - }, -] - -const oauth2Sidebar = [ - homeLink, { type: "category", label: "Concepts", @@ -579,43 +701,93 @@ const oauth2Sidebar = [ "oauth2-oidc/overview/oauth2-concepts", "oauth2-oidc/overview/oidc-concepts", "hydra/concepts/before-oauth2", - "hydra/guides/using-oauth2", "hydra/security-architecture", ], }, + { type: "category", - label: "Flows", + label: "Guides", collapsed: false, collapsible: false, link: { type: "doc", - id: "oauth2-oidc/authorization-code-flow", + id: "hydra/guides/oauth2-token-introspection", }, items: [ - "oauth2-oidc/authorization-code-flow", - "oauth2-oidc/client-credentials", - "oauth2-oidc/resource-owner-password-grant", - "oauth2-oidc/refresh-token-grant", - "oauth2-oidc/userinfo-oidc", - "oauth2-oidc/oidc-logout", + openIdSSO, + { + type: "category", + label: "Flows", + link: { + type: "doc", + id: "oauth2-oidc/authorization-code-flow", + }, + items: [ + "oauth2-oidc/authorization-code-flow", + "oauth2-oidc/client-credentials", + "oauth2-oidc/resource-owner-password-grant", + "oauth2-oidc/refresh-token-grant", + "oauth2-oidc/userinfo-oidc", + "oauth2-oidc/oidc-logout", + ], + }, + { + type: "category", + label: "Token management", + items: [ + "hydra/guides/oauth2-token-introspection", + "oauth2-oidc/revoke-consent", + "oauth2-oidc/skip-consent", + "oauth2-oidc/jwt-access-token", + "hydra/guides/audiences", + "hydra/guides/jwt", + "hydra/guides/client-token-expiration", + "hydra/guides/graceful-token-refresh", + "oauth2-oidc/claims-scope", + ], + }, + { + type: "category", + label: "Ory Actions", + items: ["hydra/guides/claims-at-refresh"], + }, + { + type: "category", + label: "Client management", + items: [ + "hydra/guides/oauth2-clients", + "hydra/jwks", + "hydra/guides/openid", + "oauth2-oidc/issuer-url", + ], + }, + { + type: "category", + label: "User Interface", + link: { + type: "doc", + id: "hydra/guides/custom-ui-oauth2", + }, + items: ["oauth2-oidc/custom-login-consent/flow", "hydra/guides/logout"], + }, ], }, +] + +const permissionsSidebar = [ + homeLink, { type: "category", - label: "User Interface", + label: "Start", collapsed: false, collapsible: false, link: { type: "doc", - id: "hydra/guides/custom-ui-oauth2", + id: "guides/permissions/overview", }, - items: ["oauth2-oidc/custom-login-consent/flow", "hydra/guides/logout"], + items: ["keto/quickstart", "keto/examples/olymp-file-sharing"], }, -] - -const permissionsSidebar = [ - homeLink, { type: "category", label: "Concepts", @@ -626,6 +798,7 @@ const permissionsSidebar = [ id: "keto/index", }, items: [ + "keto/guides/rbac", { type: "autogenerated", dirName: "keto/concepts", @@ -635,13 +808,7 @@ const permissionsSidebar = [ }, { type: "category", - label: "Permissions", - collapsed: false, - collapsible: false, - link: { - type: "doc", - id: "keto/index", - }, + label: "Guides", items: [ "keto/guides/simple-access-check-guide", "keto/modeling/create-permission-model", @@ -953,15 +1120,9 @@ module.exports = { docs: [ "welcome", { - type: "category", + type: "doc", + id: "getting-started/overview", label: "Quickstarts & tutorials", - collapsed: false, - collapsible: false, - link: { - type: "doc", - id: "getting-started/overview", - }, - items: quickstartSidebar(true), }, { type: "category", @@ -1048,13 +1209,13 @@ module.exports = { }, ], reference: referenceSidebar, - "quickstarts-and-tutorials": quickstartSidebar(false), guides: guidesSidebar(false), + "quickstarts-and-tutorials": quickstartSidebar(false), troubleshooting: troubleshootingSidebar, + selfhosting: selfhostingSidebar, identities: identitiesSidebar, oauth2: oauth2Sidebar, permissions: permissionsSidebar, - selfhosting: selfhostingSidebar, sdk: [], api: [],