diff --git a/docs/oel/getting-started/index.mdx b/docs/oel/getting-started/index.mdx
index 13531e04f..8b4056f63 100644
--- a/docs/oel/getting-started/index.mdx
+++ b/docs/oel/getting-started/index.mdx
@@ -64,4 +64,4 @@ All Ory Enterprise builds share common advantages over their open-source counter
The Ory Enterprise License is leveraged by organizations requiring robust and scalable identity infrastructure. For instance,
OpenAI utilizes the Ory Enterprise License with Ory Hydra Enterprise to manage authentication for its 400 million weekly active
users, ensuring reliability, massive scale, and uninterrupted service. Read more about
-[OpenAI's use of Ory](https://www.ory.com/case-studies/openai).
\ No newline at end of file
+[OpenAI's use of Ory](https://www.ory.com/case-studies/openai).
diff --git a/docs/oss/index.md b/docs/oss/index.md
index 702b26be3..ad78d74cc 100644
--- a/docs/oss/index.md
+++ b/docs/oss/index.md
@@ -1,4 +1,4 @@
---
title: Ory Open Source
hide_title: true
----
\ No newline at end of file
+---
diff --git a/docs/oss/telemetry.mdx b/docs/oss/telemetry.mdx
index a2965ed7f..bf0da68d2 100644
--- a/docs/oss/telemetry.mdx
+++ b/docs/oss/telemetry.mdx
@@ -3,8 +3,8 @@ id: telemetry
title: Product telemetry and privacy
---
-To continuously improve reliability and performance, Ory collects a limited set of fully anonymized product telemetry. This
-page documents the data collected, its purpose, and the privacy protections applied.
+To continuously improve reliability and performance, Ory collects a limited set of fully anonymized product telemetry. This page
+documents the data collected, its purpose, and the privacy protections applied.
Our goal is to provide you with the fastest and most reliable open source services. To achieve this goal, we collect metrics on
endpoint performance and send a **fully anonymized** telemetry report ("anonymous usage statistics") to our servers. This data
diff --git a/docs/products/overview.mdx b/docs/products/overview.mdx
index fafb25574..fe306a4bd 100644
--- a/docs/products/overview.mdx
+++ b/docs/products/overview.mdx
@@ -22,53 +22,59 @@ import * as welcomeContent from "@site/src/pages/_assets/welcome-content"
## Authentication
-Kratos — fully standalone. Handles the complete identity lifecycle (registration, login, recovery, MFA, profile management) without dependencies.
+Kratos — fully standalone. Handles the complete identity lifecycle (registration, login, recovery, MFA, profile management)
+without dependencies.
## Authorization
-Hydra — needs an identity provider. It's deliberately "headless"—it issues OAuth tokens but doesn't manage users. It asks "who is this user?" and needs Kratos (or another IdP) to answer.
+Hydra — needs an identity provider. It's deliberately "headless"—it issues OAuth tokens but doesn't manage users. It asks "who is
+this user?" and needs Kratos (or another IdP) to answer.
-Keto — needs an identity provider. It answers "can this subject do this action?" but needs something upstream to authenticate who the subject is.
+Keto — needs an identity provider. It answers "can this subject do this action?" but needs something upstream to authenticate who
+the subject is.
## Authentication & Authorization
-Kratos + Keto — when you need authentication and fine-grained permissions within your own application(s). Users log in via Kratos, and Keto controls what they can access internally.
+Kratos + Keto — when you need authentication and fine-grained permissions within your own application(s). Users log in via Kratos,
+and Keto controls what they can access internally.
-Kratos + Hydra — when you need authentication plus OAuth 2.0/OIDC capabilities: SSO across multiple apps, third-party integrations, or federating identity to external services.
+Kratos + Hydra — when you need authentication plus OAuth 2.0/OIDC capabilities: SSO across multiple apps, third-party
+integrations, or federating identity to external services.
Kratos + Hydra + Keto — when you need all three: user login, token issuance/SSO, and fine-grained permissions.
The choice depends on whether you're solving for internal permissions vs. external/delegated access.
-```mermaid
+````mermaid
flowchart TD
Start([What are you building?]) --> Q1{Need to manage
user identities?}
-
+
Q1 -->|Yes| Kratos[✓ Kratos]
Q1 -->|No, using existing IdP| ExternalIdP[Use your existing IdP]
-
+
Kratos --> Q2{Need B2B features?
Organizations, teams,
org-level SSO?}
ExternalIdP --> Q3
-
+
Q2 -->|Yes| Polis[✓ Add Polis]
Q2 -->|No| Q3
Polis --> Q3
-
+
Q3{Need SSO across apps
or third-party integrations?}
-
+
Q3 -->|Yes| Hydra[✓ Add Hydra]
Q3 -->|No| Q4
Hydra --> Q4
-
+
Q4{Need fine-grained
permissions?
e.g. can user X edit doc Y}
-
+
Q4 -->|Yes| Keto[✓ Add Keto]
Q4 -->|No| Q5
Keto --> Q5
-
+
Q5{Microservices or
zero-trust architecture?}
-
+
Q5 -->|Yes| Oathkeeper[✓ Add Oathkeeper]
Q5 -->|No| Done([Your stack is ready])
Oathkeeper --> Done
```
+````
diff --git a/docusaurus.config.ts b/docusaurus.config.ts
index 29452a7a5..42689ad39 100644
--- a/docusaurus.config.ts
+++ b/docusaurus.config.ts
@@ -93,7 +93,7 @@ const config: Config = {
copyright: `Copyright © ${new Date().getFullYear()} Ory Corp`,
links: [
{
- label: "Need Support?",
+ label: "Support?",
href: "https://www.ory.com/support",
},
{
diff --git a/sidebars-network.ts b/sidebars-network.ts
index a06104a4c..065be70a1 100644
--- a/sidebars-network.ts
+++ b/sidebars-network.ts
@@ -42,9 +42,7 @@ const networkSidebar = [
link: {
type: "generated-index",
},
- items: [
- "identities/get-started/setup",
- ],
+ items: ["identities/get-started/setup"],
},
{
type: "category",
@@ -228,7 +226,7 @@ const networkSidebar = [
"actions/integrations/hubspot",
"actions/integrations/mailchimp",
"actions/integrations/segment",
- ],
+ ],
},
],
},
@@ -700,4 +698,4 @@ const networkSidebar = [
},
]
-export default networkSidebar
\ No newline at end of file
+export default networkSidebar
diff --git a/sidebars-oel.ts b/sidebars-oel.ts
index 2dafac34f..c3dad3302 100644
--- a/sidebars-oel.ts
+++ b/sidebars-oel.ts
@@ -18,7 +18,8 @@ const oelSidebar = [
collapsible: false,
link: {
type: "doc",
- id: "oel/getting-started/index"},
+ id: "oel/getting-started/index",
+ },
items: [
"oel/getting-started/index",
{
@@ -30,93 +31,15 @@ const oelSidebar = [
"self-hosted/oel/quickstart",
"self-hosted/oel/monitoring/monitoring",
"self-hosted/oel/high-performance-pooling",
- ]
- },
- {
- type: "category",
- label: "Ory Kratos Identities",
- items: [
- "self-hosted/oel/kratos/upgrade",
- "self-hosted/oel/kratos/changelog",
- "self-hosted/oel/kratos/configuration",
- "kratos/install",
- "kratos/quickstart",
- {
- type: "category",
- label: "Configuration",
- items: [
- "kratos/configuring",
- "kratos/guides/configuring-cookies",
- "kratos/guides/multi-domain-cookies",
- "self-hosted/kratos/configuration/password",
- "kratos/self-hosted/mfa",
- "kratos/guides/setting-up-cors",
- "self-hosted/kratos/configuration/oidc",
- "kratos/guides/setting-up-password-hashing-parameters",
- "kratos/guides/select-cipher-algorithm",
- "kratos/self-hosted/email-http",
- "kratos/reference/configuration-editor",
- ],
- },
- {
- type: "category",
- label: "Guides",
- items: [
- "kratos/guides/docker",
- "kratos/guides/deploy-kratos-example",
- "kratos/guides/upgrade",
- "kratos/guides/production",
- "kratos/guides/multi-tenancy-multitenant",
- "self-hosted/operations/scalability",
- "kratos/self-hosted/mail-courier-templates",
- "kratos/guides/tracing",
- "kratos/guides/zero-trust-iap-proxy-identity-access-proxy",
- "kratos/guides/https-tls",
- "kratos/guides/hosting-own-have-i-been-pwned-api",
- "kratos/guides/secret-key-rotation",
- {
- type: "category",
- label: "Troubleshooting",
- items: [
- {
- type: "autogenerated",
- dirName: "kratos/debug",
- },
- ],
- },
],
},
{
type: "category",
- label: "Reference",
- items: [
- "kratos/reference/api",
- {
- "Command Line Interface (CLI)": [
- {
- type: "autogenerated",
- dirName: "kratos/cli",
- },
- ],
- },
- {
- SDK: ["kratos/sdk/overview", "kratos/self-hosted/go"],
- },
- "kratos/reference/configuration",
- "kratos/reference/json-schema-json-paths",
- "kratos/reference/html-forms",
- ],
- },
- {
- type: "category",
- label: "Self-Hosted",
- collapsed: false,
- collapsible: false,
- link: {
- type: "doc",
- id: "kratos/quickstart",
- },
+ label: "Ory Kratos Identities",
items: [
+ "self-hosted/oel/kratos/upgrade",
+ "self-hosted/oel/kratos/changelog",
+ "self-hosted/oel/kratos/configuration",
"kratos/install",
"kratos/quickstart",
{
@@ -185,219 +108,316 @@ const oelSidebar = [
"kratos/reference/html-forms",
],
},
- ],
- },
- ],
- },
- {
- type: "category",
- label: "Ory Hydra OAuth2",
- items: [
- "self-hosted/oel/oauth2/migrate",
- "self-hosted/oel/oauth2/upgrade",
- "self-hosted/oel/oauth2/changelog",
- "self-hosted/oel/oauth2/token-prefix",
- "self-hosted/oel/oauth2/stateless-jwt",
- "self-hosted/oel/oauth2/migrate-postgresql-ttl",
- "self-hosted/oel/oauth2/revert-database-migrations",
- "self-hosted/oel/oauth2/configuration",
- {
- type: "category",
- label: "Self-Hosted",
- collapsed: false,
- collapsible: false,
- items: ["hydra/self-hosted/install", "hydra/self-hosted/quickstart"],
- },
- {
- type: "category",
- label: "Configuration",
- collapsed: false,
- collapsible: false,
- items: [
- "hydra/reference/configuration",
- "hydra/reference/configuration-editor",
- "hydra/self-hosted/configure-deploy",
- "hydra/self-hosted/dependencies-environment",
- "hydra/self-hosted/production",
- "hydra/self-hosted/hsm-support",
- "self-hosted/operations/scalability",
- "hydra/self-hosted/merge-multiple-db-secrets",
- "hydra/self-hosted/gitlab",
- "hydra/self-hosted/secrets-key-rotation",
- "hydra/self-hosted/kubernetes-helm-chart",
- "hydra/self-hosted/ssl-https-tls",
- "self-hosted/operations/tracing",
- "hydra/guides/cookies",
- "hydra/guides/cors",
- "self-hosted/hydra/debug/csrf",
- ],
- },
- {
- type: "category",
- label: "Guides",
- items: [
- "hydra/self-hosted/deploy-hydra-example",
- "hydra/self-hosted/upgrade",
- ],
- },
- {
- type: "category",
- label: "Reference",
- items: [
- "hydra/reference/api",
{
- "Command Line Interface (CLI)": [
+ type: "category",
+ label: "Self-Hosted",
+ collapsed: false,
+ collapsible: false,
+ link: {
+ type: "doc",
+ id: "kratos/quickstart",
+ },
+ items: [
+ "kratos/install",
+ "kratos/quickstart",
{
- type: "autogenerated",
- dirName: "hydra/cli",
+ type: "category",
+ label: "Configuration",
+ items: [
+ "kratos/configuring",
+ "kratos/guides/configuring-cookies",
+ "kratos/guides/multi-domain-cookies",
+ "self-hosted/kratos/configuration/password",
+ "kratos/self-hosted/mfa",
+ "kratos/guides/setting-up-cors",
+ "self-hosted/kratos/configuration/oidc",
+ "kratos/guides/setting-up-password-hashing-parameters",
+ "kratos/guides/select-cipher-algorithm",
+ "kratos/self-hosted/email-http",
+ "kratos/reference/configuration-editor",
+ ],
+ },
+ {
+ type: "category",
+ label: "Guides",
+ items: [
+ "kratos/guides/docker",
+ "kratos/guides/deploy-kratos-example",
+ "kratos/guides/upgrade",
+ "kratos/guides/production",
+ "kratos/guides/multi-tenancy-multitenant",
+ "self-hosted/operations/scalability",
+ "kratos/self-hosted/mail-courier-templates",
+ "kratos/guides/tracing",
+ "kratos/guides/zero-trust-iap-proxy-identity-access-proxy",
+ "kratos/guides/https-tls",
+ "kratos/guides/hosting-own-have-i-been-pwned-api",
+ "kratos/guides/secret-key-rotation",
+ {
+ type: "category",
+ label: "Troubleshooting",
+ items: [
+ {
+ type: "autogenerated",
+ dirName: "kratos/debug",
+ },
+ ],
+ },
+ ],
+ },
+ {
+ type: "category",
+ label: "Reference",
+ items: [
+ "kratos/reference/api",
+ {
+ "Command Line Interface (CLI)": [
+ {
+ type: "autogenerated",
+ dirName: "kratos/cli",
+ },
+ ],
+ },
+ {
+ SDK: ["kratos/sdk/overview", "kratos/self-hosted/go"],
+ },
+ "kratos/reference/configuration",
+ "kratos/reference/json-schema-json-paths",
+ "kratos/reference/html-forms",
+ ],
},
- ],
- },
- {
- SDK: [
- "hydra/sdk/overview",
- "hydra/self-hosted/go",
- "hydra/self-hosted/js",
],
},
],
},
- ],
- },
- {
- type: "category",
- label: "Ory Keto Permissions",
- items: [
- "self-hosted/oel/keto/changelog",
- "self-hosted/oel/keto/configuration",
{
type: "category",
- label: "Self-Hosted",
- collapsed: false,
- collapsible: false,
+ label: "Ory Hydra OAuth2",
items: [
- "keto/install",
- "keto/quickstart",
+ "self-hosted/oel/oauth2/migrate",
+ "self-hosted/oel/oauth2/upgrade",
+ "self-hosted/oel/oauth2/changelog",
+ "self-hosted/oel/oauth2/token-prefix",
+ "self-hosted/oel/oauth2/stateless-jwt",
+ "self-hosted/oel/oauth2/migrate-postgresql-ttl",
+ "self-hosted/oel/oauth2/revert-database-migrations",
+ "self-hosted/oel/oauth2/configuration",
+ {
+ type: "category",
+ label: "Self-Hosted",
+ collapsed: false,
+ collapsible: false,
+ items: [
+ "hydra/self-hosted/install",
+ "hydra/self-hosted/quickstart",
+ ],
+ },
{
type: "category",
label: "Configuration",
+ collapsed: false,
+ collapsible: false,
items: [
- "keto/reference/configuration",
- "keto/reference/configuration-editor",
+ "hydra/reference/configuration",
+ "hydra/reference/configuration-editor",
+ "hydra/self-hosted/configure-deploy",
+ "hydra/self-hosted/dependencies-environment",
+ "hydra/self-hosted/production",
+ "hydra/self-hosted/hsm-support",
+ "self-hosted/operations/scalability",
+ "hydra/self-hosted/merge-multiple-db-secrets",
+ "hydra/self-hosted/gitlab",
+ "hydra/self-hosted/secrets-key-rotation",
+ "hydra/self-hosted/kubernetes-helm-chart",
+ "hydra/self-hosted/ssl-https-tls",
+ "self-hosted/operations/tracing",
+ "hydra/guides/cookies",
+ "hydra/guides/cors",
+ "self-hosted/hydra/debug/csrf",
],
},
{
type: "category",
label: "Guides",
items: [
- "keto/guides/production",
- "keto/guides/v0.7-migration",
- "keto/guides/migrating-legacy-policies",
- "keto/guides/upgrade",
+ "hydra/self-hosted/deploy-hydra-example",
+ "hydra/self-hosted/upgrade",
],
},
{
- Reference: [
- "keto/reference/rest-api",
- "keto/reference/proto-api",
+ type: "category",
+ label: "Reference",
+ items: [
+ "hydra/reference/api",
{
"Command Line Interface (CLI)": [
{
type: "autogenerated",
- dirName: "keto/cli",
+ dirName: "hydra/cli",
},
],
},
{
- SDK: ["keto/sdk/overview", "keto/self-hosted/go"],
+ SDK: [
+ "hydra/sdk/overview",
+ "hydra/self-hosted/go",
+ "hydra/self-hosted/js",
+ ],
},
],
},
],
},
- ],
- },
- {
- type: "category",
- label: "Ory Polis",
- items: [
- "self-hosted/oel/polis/changelog",
{
type: "category",
- label: "Ory Polis",
- collapsed: true,
- collapsible: true,
+ label: "Ory Keto Permissions",
items: [
- "polis/index",
- "polis/install",
- "polis/quickstart",
- "polis/reference/api",
+ "self-hosted/oel/keto/changelog",
+ "self-hosted/oel/keto/configuration",
{
type: "category",
- label: "Enterprise SSO",
+ label: "Self-Hosted",
collapsed: false,
collapsible: false,
- link: {
- type: "doc",
- id: "polis/saml-federation/index",
- },
items: [
+ "keto/install",
+ "keto/quickstart",
{
type: "category",
- label: "Concepts",
- link: {
- type: "doc",
- id: "polis/sso-flow/index",
- },
+ label: "Configuration",
items: [
- "polis/sso-flow/index",
- "polis/sso-flow/example-flow",
- "polis/security",
+ "keto/reference/configuration",
+ "keto/reference/configuration-editor",
],
},
{
type: "category",
- label: "Configuration",
+ label: "Guides",
items: [
- "polis/deploy/env-variables",
- "polis/guides/configuring-saml-sso",
- "polis/guides/login-with-saml-sso",
- "polis/deploy/pre-loaded-connections",
+ "keto/guides/production",
+ "keto/guides/v0.7-migration",
+ "keto/guides/migrating-legacy-policies",
+ "keto/guides/upgrade",
],
},
+ {
+ Reference: [
+ "keto/reference/rest-api",
+ "keto/reference/proto-api",
+ {
+ "Command Line Interface (CLI)": [
+ {
+ type: "autogenerated",
+ dirName: "keto/cli",
+ },
+ ],
+ },
+ {
+ SDK: ["keto/sdk/overview", "keto/self-hosted/go"],
+ },
+ ],
+ },
+ ],
+ },
+ ],
+ },
+ {
+ type: "category",
+ label: "Ory Polis",
+ items: [
+ "self-hosted/oel/polis/changelog",
+ {
+ type: "category",
+ label: "Ory Polis",
+ collapsed: true,
+ collapsible: true,
+ items: [
+ "polis/index",
+ "polis/install",
+ "polis/quickstart",
+ "polis/reference/api",
{
type: "category",
- label: "Guides",
+ label: "Enterprise SSO",
+ collapsed: false,
+ collapsible: false,
link: {
type: "doc",
- id: "polis/guides/service",
+ id: "polis/saml-federation/index",
},
items: [
- "polis/guides/service",
- "polis/guides/npm-library",
- "polis/upgrade",
- "polis/guides/examples",
- "polis/sbom",
- "polis/container-signing",
- "polis/events",
- "polis/observability",
{
type: "category",
- label: "Frameworks",
+ label: "Concepts",
+ link: {
+ type: "doc",
+ id: "polis/sso-flow/index",
+ },
items: [
+ "polis/sso-flow/index",
+ "polis/sso-flow/example-flow",
+ "polis/security",
+ ],
+ },
+ {
+ type: "category",
+ label: "Configuration",
+ items: [
+ "polis/deploy/env-variables",
+ "polis/guides/configuring-saml-sso",
+ "polis/guides/login-with-saml-sso",
+ "polis/deploy/pre-loaded-connections",
+ ],
+ },
+ {
+ type: "category",
+ label: "Guides",
+ link: {
+ type: "doc",
+ id: "polis/guides/service",
+ },
+ items: [
+ "polis/guides/service",
+ "polis/guides/npm-library",
+ "polis/upgrade",
+ "polis/guides/examples",
+ "polis/sbom",
+ "polis/container-signing",
+ "polis/events",
+ "polis/observability",
{
- type: "autogenerated",
- dirName: "polis/guides/frameworks",
+ type: "category",
+ label: "Frameworks",
+ items: [
+ {
+ type: "autogenerated",
+ dirName: "polis/guides/frameworks",
+ },
+ ],
+ },
+ {
+ type: "category",
+ label: "Deployment",
+ items: [
+ {
+ type: "autogenerated",
+ dirName: "polis/guides/deployment",
+ },
+ ],
},
],
},
{
type: "category",
- label: "Deployment",
+ label: "SAML SSO Providers",
+ link: {
+ type: "doc",
+ id: "polis/sso-providers/index",
+ },
items: [
{
type: "autogenerated",
- dirName: "polis/guides/deployment",
+ dirName: "polis/sso-providers",
},
],
},
@@ -405,173 +425,157 @@ const oelSidebar = [
},
{
type: "category",
- label: "SAML SSO Providers",
+ label: "Directory Sync",
+ collapsed: false,
+ collapsible: false,
link: {
type: "doc",
- id: "polis/sso-providers/index",
+ id: "polis/directory-sync/index",
},
items: [
+ "polis/directory-sync/quickstart",
+ "polis/directory-sync/api-reference",
{
- type: "autogenerated",
- dirName: "polis/sso-providers",
+ type: "category",
+ label: "Guides",
+ collapsed: true,
+ link: {
+ type: "generated-index",
+ // slug: "polis/directory-sync/guides",
+ },
+ items: [
+ "polis/directory-sync/webhooks",
+ "polis/directory-sync/events",
+ "polis/directory-sync/observability",
+ "polis/directory-sync/examples",
+ "polis/directory-sync/faq",
+ // {
+ // type: "category",
+ // label: "Directory providers",
+ // link: {
+ // type: "generated-index",
+ // slug: "polis/directory-sync/providers",
+ // },
+ // items: [
+ // {
+ // type: "autogenerated",
+ // dirName: "polis/directory-sync/providers",
+ // },
+ //],
+ // },
+ // {
+ // type: "category",
+ // label: "Frameworks",
+ // items: [
+ // {
+ // type: "autogenerated",
+ // dirName: "polis/directory-sync/guides",
+ // },
+ //],
+ // },
+ ],
},
],
},
- ],
- },
- {
- type: "category",
- label: "Directory Sync",
- collapsed: false,
- collapsible: false,
- link: {
- type: "doc",
- id: "polis/directory-sync/index",
- },
- items: [
- "polis/directory-sync/quickstart",
- "polis/directory-sync/api-reference",
{
type: "category",
- label: "Guides",
- collapsed: true,
+ label: "Admin Portal",
+ collapsed: false,
+ collapsible: false,
link: {
- type: "generated-index",
- // slug: "polis/directory-sync/guides",
+ type: "doc",
+ id: "polis/admin-portal/index",
},
items: [
- "polis/directory-sync/webhooks",
- "polis/directory-sync/events",
- "polis/directory-sync/observability",
- "polis/directory-sync/examples",
- "polis/directory-sync/faq",
- // {
- // type: "category",
- // label: "Directory providers",
- // link: {
- // type: "generated-index",
- // slug: "polis/directory-sync/providers",
- // },
- // items: [
- // {
- // type: "autogenerated",
- // dirName: "polis/directory-sync/providers",
- // },
- //],
- // },
- // {
- // type: "category",
- // label: "Frameworks",
- // items: [
- // {
- // type: "autogenerated",
- // dirName: "polis/directory-sync/guides",
- // },
- //],
- // },
+ {
+ type: "category",
+ label: "Guides",
+ collapsed: true,
+ link: {
+ type: "generated-index",
+ //slug: "polis/admin-portal/guides",
+ },
+ items: [
+ "polis/admin-portal/enterprise-sso",
+ "polis/admin-portal/setup-links-enterprise-sso",
+ "polis/admin-portal/directory-sync",
+ "polis/admin-portal/setup-links-directory-sync",
+ ],
+ },
],
},
],
},
+ ],
+ },
+ {
+ type: "category",
+ label: "Ory Oathkeeper Zero Trust Proxy",
+ collapsed: true,
+ collapsible: true,
+ items: [
+ "self-hosted/oel/oathkeeper/upgrade-oathkeeper",
+ "self-hosted/oel/oathkeeper/changelog",
+ "self-hosted/oel/oathkeeper/configuration",
+ "oathkeeper/index",
+ "oathkeeper/install",
+ "oathkeeper/reference/api",
{
type: "category",
- label: "Admin Portal",
+ label: "Concepts",
collapsed: false,
collapsible: false,
- link: {
- type: "doc",
- id: "polis/admin-portal/index",
- },
items: [
+ "oathkeeper/api-access-rules",
{
type: "category",
- label: "Guides",
- collapsed: true,
- link: {
- type: "generated-index",
- //slug: "polis/admin-portal/guides",
- },
+ label: "Handlers",
items: [
- "polis/admin-portal/enterprise-sso",
- "polis/admin-portal/setup-links-enterprise-sso",
- "polis/admin-portal/directory-sync",
- "polis/admin-portal/setup-links-directory-sync",
+ "oathkeeper/pipeline",
+ "oathkeeper/pipeline/authn",
+ "oathkeeper/pipeline/authz",
+ "oathkeeper/pipeline/mutator",
+ "oathkeeper/pipeline/error",
],
},
+ "oathkeeper/grpc-middleware",
],
},
- ],
- },
- ],
- },
- {
- type: "category",
- label: "Ory Oathkeeper Zero Trust Proxy",
- collapsed: true,
- collapsible: true,
- items: [
- "self-hosted/oel/oathkeeper/upgrade-oathkeeper",
- "self-hosted/oel/oathkeeper/changelog",
- "self-hosted/oel/oathkeeper/configuration",
- "oathkeeper/index",
- "oathkeeper/install",
- "oathkeeper/reference/api",
- {
- type: "category",
- label: "Concepts",
- collapsed: false,
- collapsible: false,
- items: [
- "oathkeeper/api-access-rules",
{
type: "category",
- label: "Handlers",
+ label: "Guides",
+ collapsed: false,
+ collapsible: false,
items: [
- "oathkeeper/pipeline",
- "oathkeeper/pipeline/authn",
- "oathkeeper/pipeline/authz",
- "oathkeeper/pipeline/mutator",
- "oathkeeper/pipeline/error",
+ "oathkeeper/configure-deploy",
+ "oathkeeper/guides/proxy-websockets",
+ "oathkeeper/guides/traefik-proxy-integration",
+ "oathkeeper/guides/upgrade",
],
},
- "oathkeeper/grpc-middleware",
- ],
- },
- {
- type: "category",
- label: "Guides",
- collapsed: false,
- collapsible: false,
- items: [
- "oathkeeper/configure-deploy",
- "oathkeeper/guides/proxy-websockets",
- "oathkeeper/guides/traefik-proxy-integration",
- "oathkeeper/guides/upgrade",
- ],
- },
- {
- type: "category",
- label: "Reference",
- collapsed: false,
- collapsible: false,
- items: [
- "oathkeeper/reference/configuration",
- "oathkeeper/reference/configuration-editor",
{
- "Command Line Interface (CLI)": [
+ type: "category",
+ label: "Reference",
+ collapsed: false,
+ collapsible: false,
+ items: [
+ "oathkeeper/reference/configuration",
+ "oathkeeper/reference/configuration-editor",
{
- type: "autogenerated",
- dirName: "oathkeeper/cli",
+ "Command Line Interface (CLI)": [
+ {
+ type: "autogenerated",
+ dirName: "oathkeeper/cli",
+ },
+ ],
},
+ "oathkeeper/sdk",
],
},
- "oathkeeper/sdk",
],
},
],
},
-],
- },
- ]
+]
export default oelSidebar
diff --git a/sidebars-oss.ts b/sidebars-oss.ts
index 473d37ed1..de7bdce42 100644
--- a/sidebars-oss.ts
+++ b/sidebars-oss.ts
@@ -21,20 +21,20 @@ const ossSidebar = [
id: "oss/getting-started/index",
},
items: [
- "oss/getting-started/index",
- {
- type: "category",
- label: "Open Source",
- collapsed: true,
- collapsible: true,
- items: [
- "oss/open-source",
- "oss/community",
- "oss/contributing",
- "oss/commitment",
- "oss/software-architecture-philosophy",
- ],
- },
+ "oss/getting-started/index",
+ {
+ type: "category",
+ label: "Open Source",
+ collapsed: true,
+ collapsible: true,
+ items: [
+ "oss/open-source",
+ "oss/community",
+ "oss/contributing",
+ "oss/commitment",
+ "oss/software-architecture-philosophy",
+ ],
+ },
{
type: "category",
label: "Getting started",
@@ -88,6 +88,6 @@ const ossSidebar = [
},
],
},
-]
+]
-export default ossSidebar
\ No newline at end of file
+export default ossSidebar
diff --git a/sidebars-quickstarts.ts b/sidebars-quickstarts.ts
index 3628030f6..df97103bc 100644
--- a/sidebars-quickstarts.ts
+++ b/sidebars-quickstarts.ts
@@ -28,33 +28,25 @@ const quickstartsSidebar = [
type: "category",
label: "Delegated Scope-based AuthZ & Federated AuthN",
className: "sidebar-icon sidebar-icon-hydra",
- items: [
- "oauth2-oidc/index",
- "getting-started/ory-network-oauth2",
- ],
+ items: ["oauth2-oidc/index", "getting-started/ory-network-oauth2"],
},
{
type: "category",
label: "Fine-grained AuthZ & Permissions",
className: "sidebar-icon sidebar-icon-keto",
- items: [
- "keto/index",
- ],
+ items: ["keto/index"],
},
- {
+ {
type: "category",
label: "Enterprise SSO AuthZ",
className: "sidebar-icon sidebar-icon-polis",
- items: [
- "polis/index",
- ],
- }, {
+ items: ["polis/index"],
+ },
+ {
type: "category",
label: "Proxy-based Access Control",
className: "sidebar-icon sidebar-icon-oathkeeper",
- items: [
- "oathkeeper/index",
- ],
+ items: ["oathkeeper/index"],
},
],
},
@@ -63,14 +55,15 @@ const quickstartsSidebar = [
label: "Ory Enterprise License",
collapsed: false,
collapsible: false,
- items: [,
+ items: [
+ ,
{
type: "category",
label: "Ory Kratos",
collapsed: true,
collapsible: true,
items: [
- "identities/index",
+ "identities/index",
"kratos/quickstart",
"kratos/manage-identities/overview",
"kratos/mfa/overview",
@@ -81,40 +74,28 @@ const quickstartsSidebar = [
label: "Ory Hydra",
collapsed: true,
collapsible: true,
- items: [
- "oauth2-oidc/index",
- "hydra/self-hosted/quickstart",
- ],
+ items: ["oauth2-oidc/index", "hydra/self-hosted/quickstart"],
},
{
type: "category",
label: "Ory Keto",
collapsed: true,
collapsible: true,
- items: [
- "keto/index",
- "keto/quickstart",
- ],
+ items: ["keto/index", "keto/quickstart"],
},
{
type: "category",
label: "Ory Polis",
collapsed: true,
collapsible: true,
- items: [
- "polis/index",
- "polis/quickstart",
- ],
+ items: ["polis/index", "polis/quickstart"],
},
{
type: "category",
label: "Ory Oathkeeper",
collapsed: true,
collapsible: true,
- items: [
- "oathkeeper/index",
- "oathkeeper/configure-deploy",
- ],
+ items: ["oathkeeper/index", "oathkeeper/configure-deploy"],
},
],
},
@@ -130,7 +111,7 @@ const quickstartsSidebar = [
collapsed: true,
collapsible: true,
items: [
- "identities/index",
+ "identities/index",
"kratos/quickstart",
"kratos/manage-identities/overview",
"kratos/mfa/overview",
@@ -141,43 +122,31 @@ const quickstartsSidebar = [
label: "Ory Hydra",
collapsed: true,
collapsible: true,
- items: [
- "oauth2-oidc/index",
- "hydra/self-hosted/quickstart",
- ],
+ items: ["oauth2-oidc/index", "hydra/self-hosted/quickstart"],
},
{
type: "category",
label: "Ory Keto",
collapsed: true,
collapsible: true,
- items: [
- "keto/index",
- "keto/quickstart",
- ],
+ items: ["keto/index", "keto/quickstart"],
},
{
type: "category",
label: "Ory Polis",
collapsed: true,
collapsible: true,
- items: [
- "polis/index",
- "polis/quickstart",
- ],
+ items: ["polis/index", "polis/quickstart"],
},
{
type: "category",
label: "Ory Oathkeeper",
collapsed: true,
collapsible: true,
- items: [
- "oathkeeper/index",
- "oathkeeper/configure-deploy",
- ],
+ items: ["oathkeeper/index", "oathkeeper/configure-deploy"],
},
],
},
]
-export default quickstartsSidebar
\ No newline at end of file
+export default quickstartsSidebar
diff --git a/src/components/OryHeroDemo.jsx b/src/components/OryHeroDemo.jsx
index c42c861b1..4cbe1acb1 100644
--- a/src/components/OryHeroDemo.jsx
+++ b/src/components/OryHeroDemo.jsx
@@ -1,7 +1,14 @@
import React, { useState, useEffect, useRef } from "react"
const OryHeroDemo = () => {
- const [lines, setLines] = useState([])
+ const [lines, setLines] = useState([
+ {
+ type: "line",
+ number: 1,
+ text: "From zero to registered user in minutes!",
+ },
+ { type: "line", number: 2, text: "Click 'Run'." },
+ ])
const [isRunning, setIsRunning] = useState(false)
const [hasRun, setHasRun] = useState(false)
const terminalRef = useRef(null)
@@ -67,7 +74,7 @@ const OryHeroDemo = () => {
type: "link",
text: "Create your free project via Ory Console →",
url: "https://console.ory.sh/",
- delay: 300,
+ delay: 400,
},
]
@@ -87,7 +94,14 @@ const OryHeroDemo = () => {
}
const reset = () => {
- setLines([])
+ setLines([
+ {
+ type: "line",
+ number: 1,
+ text: "From zero to registered user in minutes!",
+ },
+ { type: "line", number: 2, text: "Click 'Run'." },
+ ])
setHasRun(false)
}
@@ -99,25 +113,28 @@ const OryHeroDemo = () => {
const styles = {
wrapper: {
- width: "80%",
- maxWidth: "500px",
+ width: "416px",
margin: "0 auto",
- maxHeight: "500px",
},
terminal: {
+ width: "416px",
+ height: "280px",
borderRadius: "8px",
overflow: "hidden",
- boxShadow: "0 12px 30px rgba(0,0,0,0.25)",
- background: "#1a1033",
- border: "1px solid #3d2a6d",
+ boxShadow:
+ "0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)",
+ background: "#ffffff",
+ border: "1px solid #e2e8f0",
+ display: "flex",
+ flexDirection: "column",
},
header: {
display: "flex",
alignItems: "center",
gap: "8px",
padding: "12px 16px",
- background: "#241845",
- borderBottom: "1px solid #3d2a6d",
+ background: "#f8fafc",
+ borderBottom: "1px solid #e2e8f0",
},
trafficLights: {
display: "flex",
@@ -130,47 +147,59 @@ const OryHeroDemo = () => {
background: color,
}),
headerText: {
- color: "#888",
+ color: "#64748b",
fontSize: "13px",
- fontFamily: "monospace",
- marginLeft: "8px",
+ fontFamily: "Inter, sans-serif",
+ fontWeight: "400",
},
body: {
padding: "16px",
- fontFamily: "monospace",
+ fontFamily: "JetBrains Mono, monospace",
fontSize: "13px",
- height: "200px",
+ flex: "1",
overflowY: "auto",
+ background: "#ffffff",
+ color: "#0f172a",
+ lineHeight: "1.6",
+ },
+ lineNumber: {
+ color: "#94a3b8",
+ marginRight: "12px",
+ fontFamily: "JetBrains Mono, monospace",
+ fontSize: "13px",
},
comment: {
- color: "#d2a8ff",
+ color: "#64748b",
marginTop: "12px",
},
note: {
- color: "#d2a8ff",
+ color: "#64748b",
fontSize: "11px",
marginTop: "4px",
marginBottom: "8px",
paddingLeft: "16px",
},
command: {
- color: "#ffffff",
+ color: "#0f172a",
+ display: "flex",
+ alignItems: "flex-start",
},
commandCont: {
- color: "#ffffff",
+ color: "#0f172a",
paddingLeft: "16px",
},
prompt: {
- color: "#67e8f9",
+ color: "#64748b",
+ marginRight: "8px",
},
output: {
- color: "#a5d6ff",
+ color: "#334155",
paddingLeft: "8px",
},
success: {
- color: "#ff7b72",
+ color: "#334155",
paddingLeft: "8px",
- fontWeight: "600",
+ fontWeight: "400",
},
linkWrapper: {
paddingLeft: "8px",
@@ -180,7 +209,7 @@ const OryHeroDemo = () => {
display: "inline-flex",
alignItems: "center",
padding: "6px 12px",
- background: "#0e639c",
+ background: "#383bca",
color: "#fff",
fontSize: "13px",
fontWeight: "500",
@@ -191,45 +220,61 @@ const OryHeroDemo = () => {
display: "inline-block",
width: "8px",
height: "16px",
- background: "#d4d4d4",
+ background: "#0f172a",
animation: "blink 1s infinite",
},
controls: {
display: "flex",
+ justifyContent: "space-between",
+ alignItems: "center",
gap: "8px",
padding: "12px 16px",
- background: "#241845",
- borderTop: "1px solid #3d2a6d",
+ background: "#f1f5f9",
+ borderTop: "1px solid #e2e8f0",
+ },
+ controlsText: {
+ color: "#94a3b8",
+ fontSize: "13px",
+ fontFamily: "Inter, sans-serif",
+ fontWeight: "400",
},
button: {
- padding: "6px 16px",
+ padding: "8px 16px",
fontSize: "13px",
- fontWeight: "500",
- borderRadius: "4px",
+ fontWeight: "600",
+ borderRadius: "0",
border: "none",
cursor: "pointer",
+ display: "inline-flex",
+ alignItems: "center",
+ gap: "6px",
},
runButton: {
- background: "#0e639c",
- color: "#fff",
+ background: "#6366f1",
+ color: "#ffffff",
},
runButtonDisabled: {
- background: "#555",
- color: "#999",
+ background: "#e2e8f0",
+ color: "#94a3b8",
cursor: "not-allowed",
},
resetButton: {
- background: "#3c3c3c",
- color: "#d4d4d4",
+ background: "#e2e8f0",
+ color: "#334155",
+ },
+ buttonIcon: {
+ fontSize: "14px",
+ lineHeight: "1",
+ fontWeight: "400",
},
caption: {
textAlign: "center",
- color: "#888",
+ color: "#64748b",
fontSize: "14px",
marginTop: "16px",
},
placeholder: {
- color: "#6a9955",
+ color: "#94a3b8",
},
}
@@ -247,22 +292,30 @@ const OryHeroDemo = () => {
From zero to registered user in minutes.
+ Choose the deployment option that fits your organization and + build secure IAM into your apps. You can switch later — the core + concepts stay the same. +
++ {card.description} +
++ Answer a few questions about your IAM requirements. We'll match + you with the right Ory products. +
++ Do you need identity management (user registration, + profile management)? +
++ Drop Ory into an existing app. Pick your stack and follow the + step-by-step integration guides. +
+
+ {snippetPrefix ? (
+ <>
+
+ {snippetPrefix}
+
+
+ {snippetRest}
+
+ >
+ ) : (
+
+ {selectedSnippet}
+
+ )}
+
+ + Not sure where to start? Follow our guided paths—structured journeys + that walk you through Ory's products and solutions so you can learn + and build faster. +
++ {guide.title} +
++ {guide.description} +
+ + {guide.link.label} + + → + + ++ Opinionated, end-to-end walkthroughs to help you ship real features, + not just hello-world demos. +
++ {guide.description} +
++ {guide.description} +
+
+ Ory gives you authentication, authorization, and user management
+ APIs designed for modern applications.
+
+
+ Start fast, scale to millions, and keep security best practices
+ baked in.
+
- Ory gives you authentication, authorization, and user management - APIs designed for modern applications.{" "} -
-- Start fast, scale to millions, and keep security best practices - baked in. -
-- Not sure where to start? Follow our guided - paths—structured journeys that walk you through Ory's products and - solutions so you can learn and build faster. -
-- - Want to learn more about a specific product suite or - solution? - {" "} - Go directly to product and solution specific information. -
-- Want to start coding and need an example?{" "} - Take a look in the Quickstarts to find the framework and - language you want to use. -
-- Want to find the right API to use? Go - directly to the REST API, SDKs, or CLI references. -
-- Click on - - Products - {" "} - or{" "} - - Solutions - -
-- Click on - - Quickstarts - -
-- Click on - - Reference - -
-- Choose the deployment option that fits your organization and build - secure IAM into your apps. You can switch later — the core - concepts stay the same. -
-- {card.description} -
-- {card.meta} -
- - Learn more - -- Drop Ory into an existing app. Pick your stack and follow the - step-by-step integration guides. -
-- Follow the full guide for{" "} - {lang.label}. -
-- Opinionated, end-to-end walkthroughs to help you ship real - features, not just hello-world demos. -
-{guide.description}
-- Everything around the core APIs: observability, tooling. -
-{item.description}
-