diff --git a/website/.validationignore b/website/.validationignore index 922a53f7..d9d54073 100644 --- a/website/.validationignore +++ b/website/.validationignore @@ -35,6 +35,10 @@ /docs/advanced/team-management/saml/identity-providers/okta.mdx /docs/advanced/team-management/saml/identity-providers/onelogin.mdx /docs/advanced/team-management/saml/overview.mdx +/docs/advanced/team-management/scim/identity-providers/entra-id.mdx +/docs/advanced/team-management/scim/identity-providers/okta.mdx +/docs/advanced/team-management/scim/identity-providers/onelogin.mdx +/docs/advanced/team-management/scim/overview.mdx /docs/advanced/team-management/single-sign-on-sso.mdx /docs/advanced/team-management/team-management-basics.mdx /docs/advanced/troubleshooting.mdx diff --git a/website/docs/advanced/caching.mdx b/website/docs/advanced/caching.mdx index 9c030dd6..5d5871e3 100644 --- a/website/docs/advanced/caching.mdx +++ b/website/docs/advanced/caching.mdx @@ -1,6 +1,6 @@ --- id: caching -title: Polling modes & Caching +title: Polling Modes & Caching description: This section describes how to use the SDK's caching feature. There are three different polling modes available in the ConfigCat SDKs. --- diff --git a/website/docs/advanced/team-management/auto-assign-users.mdx b/website/docs/advanced/team-management/auto-assign-users.mdx index c242e714..0951d083 100644 --- a/website/docs/advanced/team-management/auto-assign-users.mdx +++ b/website/docs/advanced/team-management/auto-assign-users.mdx @@ -1,6 +1,6 @@ --- id: auto-assign-users -title: Auto-assign Users +title: Auto-Assign Users description: New users will be automatically added to your organization if you have a verified domain. Here is how to set it up. --- diff --git a/website/docs/advanced/team-management/scim/overview.mdx b/website/docs/advanced/team-management/scim/overview.mdx index b159497d..b48cfd4e 100644 --- a/website/docs/advanced/team-management/scim/overview.mdx +++ b/website/docs/advanced/team-management/scim/overview.mdx @@ -1,6 +1,6 @@ --- id: scim-overview -title: User provisioning (SCIM) Overview +title: User Provisioning (SCIM) Overview description: This section is a step-by-step guide on how to configure User provisioning (SCIM) for your Organization in ConfigCat. --- diff --git a/website/docs/advanced/variation-id-for-analytics.mdx b/website/docs/advanced/variation-id-for-analytics.mdx index 988e09af..5a870c60 100644 --- a/website/docs/advanced/variation-id-for-analytics.mdx +++ b/website/docs/advanced/variation-id-for-analytics.mdx @@ -1,6 +1,6 @@ --- id: variation-id-for-analytics -title: Variation ID for analytics +title: Variation ID for Analytics description: Learn about how to utilize the Variation ID to enrich feature flag evaluation events. --- diff --git a/website/docusaurus.config.ts b/website/docusaurus.config.ts index 9446fbe8..c8d48e13 100644 --- a/website/docusaurus.config.ts +++ b/website/docusaurus.config.ts @@ -287,7 +287,7 @@ const config: Config = { items: [ { type: 'docSidebar', - label: 'Docs', + label: 'Product Docs', sidebarId: 'docs', position: 'left', }, diff --git a/website/sidebars.ts b/website/sidebars.ts index 341c627e..27693277 100644 --- a/website/sidebars.ts +++ b/website/sidebars.ts @@ -12,30 +12,7 @@ const docs: SidebarConfig = [ items: [ 'getting-started', 'main-concepts', - 'purchase', - 'requests', - 'network-traffic', 'organization', - ], - }, - { - label: 'Guides', - type: 'category', - collapsed: false, - collapsible: true, - className: 'icon guides-icon', - items: [ - { - label: 'Config V2', - type: 'category', - link: { type: 'doc', id: 'advanced/config-v2' }, - items: [ - 'advanced/config-v2-migration-guide', - 'advanced/config-v2-sdk-compatibility', - ], - }, - 'advanced/data-governance', - 'advanced/predefined-variations', { label: 'Targeting', type: 'category', @@ -59,9 +36,22 @@ const docs: SidebarConfig = [ 'targeting/feature-flag-evaluation', ], }, - 'advanced/variation-id-for-analytics', + 'advanced/predefined-variations', + ], + }, + { + label: 'Guides', + type: 'category', + collapsed: false, + collapsible: true, + className: 'icon guides-icon', + items: [ + 'purchase', + 'requests', + 'network-traffic', 'advanced/caching', - 'advanced/troubleshooting', + 'advanced/data-governance', + 'advanced/variation-id-for-analytics', 'zombie-flags', { label: 'Migration from LaunchDarkly', @@ -75,6 +65,16 @@ const docs: SidebarConfig = [ }, ], }, + { + label: 'Config V2', + type: 'category', + link: { type: 'doc', id: 'advanced/config-v2' }, + items: [ + 'advanced/config-v2-migration-guide', + 'advanced/config-v2-sdk-compatibility', + ], + }, + 'advanced/troubleshooting', ], }, { @@ -136,7 +136,7 @@ const docs: SidebarConfig = [ ], }, { - label: 'User provisioning (SCIM)', + label: 'User Provisioning (SCIM)', type: 'category', link: { type: 'doc', diff --git a/website/src/pages/index.js b/website/src/pages/index.js index 76954fc5..f1c133cf 100644 --- a/website/src/pages/index.js +++ b/website/src/pages/index.js @@ -8,67 +8,105 @@ import styles from './styles.module.css'; const features = [ { + column: 0, title: 'Basics', - description: <>Familiarize with ConfigCat basics., + description: <>Learn the fundamentals of ConfigCat., links: [ - { url: 'getting-started', title: 'Getting started' }, + { url: 'getting-started', title: 'Getting Started' }, { url: 'main-concepts', title: 'Main Concepts' }, + { url: 'organization', title: 'Organization & Roles' }, { url: 'targeting/targeting-overview', title: 'Targeting' }, + { url: 'advanced/predefined-variations', title: 'Predefined Variations vs Free‑Form Values' }, + ], + }, + { + column: 0, + cssClass: "last-on-mobile", + title: 'Plans & Usage', + description: <>The financial side of feature flagging., + links: [ + { url: 'purchase', title: 'Plans, Purchase & Billing' }, { url: 'requests', title: 'What is a config JSON download?' }, { url: 'network-traffic', title: 'Network Traffic' }, - { url: 'purchase', title: 'Plans, Purchase & Billing' }, - { url: 'organization', title: 'Organization & Roles' }, + ], + }, + { + column: 0, + cssClass: "last-on-mobile", + title: 'Further Reading', + description: <>Additional useful information., + links: [ + { url: 'advanced/config-v2-migration-guide', title: 'Config V2 Migration Guide' }, { url: 'news', title: 'News & Product Updates' }, { url: 'faq', title: 'FAQ' }, + { url: 'advanced/troubleshooting', title: 'Troubleshooting' }, { url: 'glossary', title: 'Glossary' }, ], }, { - title: 'Advanced Guides', - description: <>API, CLI, SAML, Webhooks..., + column: 1, + title: 'Advanced Features', // This list should be in alphabetical order + description: <>Boost your feature flagging efficiency., links: [ - { url: 'api/reference/configcat-public-management-api', title: 'Public Management API' }, - { url: 'advanced/data-governance', title: 'Data Governance - CDN' }, - { url: 'advanced/predefined-variations', title: 'Predefined Variations vs Free‑Form Values' }, - { url: 'advanced/variation-id-for-analytics', title: 'Variation ID for analytics' }, - { url: 'advanced/caching', title: 'Polling modes & Caching' }, - { - url: 'advanced/team-management/team-management-basics', - title: 'Team Management', - }, + { url: 'advanced/cli', title: 'Command Line Interface (CLI)' }, { - url: 'advanced/team-management/saml/saml-overview', - title: 'SAML Single Sign-On', + url: 'advanced/proxy/proxy-overview', + title: 'ConfigCat Proxy', }, + { url: 'advanced/data-governance', title: 'Data Governance - CDN' }, { - url: 'advanced/team-management/scim/scim-overview', - title: 'User provisioning (SCIM)', + url: 'advanced/migration-from-launchdarkly', + title: 'Migration from LaunchDarkly', }, + { url: 'advanced/mcp-server', title: 'MCP Server' }, { url: 'advanced/notifications-webhooks', title: 'Notifications - Webhooks', }, - { url: 'advanced/troubleshooting', title: 'Troubleshooting' }, - { url: 'advanced/cli', title: 'Command Line Interface (CLI)' }, + { url: 'api/reference/configcat-public-management-api', title: 'Public Management API' }, { url: 'advanced/code-references/overview', title: 'Scan & Upload Code References', }, + + { url: 'advanced/variation-id-for-analytics', title: 'Variation ID for Analytics' }, + { url: 'zombie-flags', title: 'Zombie Flags' }, + ], + }, + { + column: 1, + title: 'Team Management', + description: <>Grant your team access to ConfigCat., + links: [ { - url: 'advanced/proxy/proxy-overview', - title: 'ConfigCat Proxy', + url: 'advanced/team-management/team-management-basics', + title: 'Team Management Basics', }, { - url: 'advanced/migration-from-launchdarkly', - title: 'Migration from LaunchDarkly', + url: 'advanced/team-management/single-sign-on-sso', + title: 'SSO (Single Sign-On)', + }, + { + url: 'advanced/team-management/auto-assign-users', + title: 'Auto-Assign Users', + }, + { + url: 'advanced/team-management/saml/saml-overview', + title: 'SAML Single Sign-On', + }, + { + url: 'advanced/team-management/scim/scim-overview', + title: 'User Provisioning (SCIM)', + }, + { + url: 'advanced/team-management/domain-verification', + title: 'Domain Verification', }, - { url: 'advanced/mcp-server', title: 'MCP Server' }, - { url: 'zombie-flags', title: 'Zombie Flags' }, - // { url: 'advanced/config-v2-migration-guide', title: 'Config V2 Migration Guide' }, ], }, { - title: 'SDK references', // This list should be in alphabetical order + column: 2, + title: 'SDK References', // This list should be in alphabetical order description: <>Let's do some coding., links: [ { url: 'sdk-reference/dotnet', title: '.NET' }, @@ -101,9 +139,11 @@ const features = [ { url: 'sdk-reference/ios', title: 'Swift (iOS)' }, { url: 'sdk-reference/unity', title: 'Unity' }, { url: 'sdk-reference/unreal', title: 'Unreal Engine' }, + { url: 'sdk-reference/openfeature', title: 'OpenFeature Providers' }, ], }, { + column: 3, title: 'Integrations', // This list should be in alphabetical order description: <>Get connected to increase productivity., links: [ @@ -135,29 +175,44 @@ const features = [ }, ]; -function Feature({ imageUrl, title, description, links }) { - const imgUrl = useBaseUrl(imageUrl); +const featuresByColumn = features.reduce((acc, feature) => { + let group = acc[feature.column]; + if (!group) acc[feature.column] = group = []; + group.push(feature); + return acc; +}, []); + +function Feature({ features }) { return (
- {imgUrl && ( -
- {title} -
- )} -

{title}

-

{description}

- {FeatureItems(links)} + {features + .map(({ cssClass, imageUrl, title, description, links }, idx) => { + const imgUrl = useBaseUrl(imageUrl); + return ( +
+ {imgUrl && ( +
+ {title} +
+ )} +

{title}

+

{description}

+ +
+ ); + }) + }
); } -function FeatureItems(links) { +function FeatureItems({ links }) { return ( -