7d201ad7cb
Signed-off-by: aramissennyeydd <aramis.sennyey@doordash.com>
684 lines
22 KiB
TypeScript
684 lines
22 KiB
TypeScript
import { releases } from './releases';
|
|
|
|
function tryToLoadCustomSidebar(ref) {
|
|
try {
|
|
return require(ref);
|
|
} catch (e) {
|
|
return [];
|
|
}
|
|
}
|
|
|
|
const catalogSidebar = tryToLoadCustomSidebar(
|
|
'../docs/features/software-catalog/api/sidebar.ts',
|
|
);
|
|
const searchSidebar = tryToLoadCustomSidebar(
|
|
'../docs/features/search/api/sidebar.ts',
|
|
);
|
|
const scaffolderSidebar = tryToLoadCustomSidebar(
|
|
'../docs/features/software-templates/api/sidebar.ts',
|
|
);
|
|
|
|
export default {
|
|
docs: {
|
|
Overview: [
|
|
'overview/what-is-backstage',
|
|
'overview/technical-overview',
|
|
'overview/architecture-overview',
|
|
'overview/roadmap',
|
|
'overview/threat-model',
|
|
'overview/versioning-policy',
|
|
],
|
|
'Getting Started': [
|
|
'getting-started/index',
|
|
{
|
|
type: 'category',
|
|
label: 'Configuring Backstage',
|
|
items: [
|
|
'getting-started/config/database',
|
|
'getting-started/config/authentication',
|
|
'getting-started/configure-app-with-plugins',
|
|
'getting-started/homepage',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Deploying Backstage',
|
|
items: [
|
|
'deployment/index',
|
|
'deployment/scaling',
|
|
'deployment/docker',
|
|
'deployment/k8s',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Using Backstage',
|
|
items: [
|
|
'getting-started/logging-in',
|
|
'getting-started/register-a-component',
|
|
'getting-started/create-a-component',
|
|
],
|
|
},
|
|
'overview/support',
|
|
'getting-started/keeping-backstage-updated',
|
|
],
|
|
...(process.env.GOLDEN_PATH
|
|
? {
|
|
'Golden Paths': [
|
|
{
|
|
type: 'category',
|
|
label: '001 - create-app',
|
|
items: [
|
|
'golden-path/create-app/index',
|
|
'golden-path/create-app/npx-create-app',
|
|
'golden-path/create-app/local-development',
|
|
'golden-path/create-app/installing-plugins',
|
|
'golden-path/create-app/logging-in',
|
|
'golden-path/create-app/custom-theme',
|
|
'golden-path/create-app/keeping-backstage-updated',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: '002 - Plugins',
|
|
items: [
|
|
'golden-path/plugins/index',
|
|
'golden-path/plugins/why-build-plugins',
|
|
'golden-path/plugins/sustainable-plugin-development',
|
|
{
|
|
type: 'category',
|
|
label: 'Backend Plugins',
|
|
items: [
|
|
'golden-path/plugins/backend/001-first-steps',
|
|
'golden-path/plugins/backend/002-poking-around',
|
|
],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
}
|
|
: {}),
|
|
'Core Features': [
|
|
{
|
|
type: 'category',
|
|
label: 'Auth and Identity',
|
|
items: [
|
|
'auth/index',
|
|
{
|
|
type: 'category',
|
|
label: 'Included providers',
|
|
items: [
|
|
'auth/auth0/provider',
|
|
'auth/atlassian/provider',
|
|
'auth/aws-alb/provider',
|
|
'auth/microsoft/provider',
|
|
'auth/microsoft/easy-auth',
|
|
'auth/bitbucket/provider',
|
|
'auth/bitbucketServer/provider',
|
|
'auth/cloudflare/provider',
|
|
'auth/github/provider',
|
|
'auth/gitlab/provider',
|
|
'auth/google/provider',
|
|
'auth/google/gcp-iap-auth',
|
|
'auth/guest/provider',
|
|
'auth/okta/provider',
|
|
'auth/oauth2-proxy/provider',
|
|
'auth/onelogin/provider',
|
|
'auth/vmware-cloud/provider',
|
|
],
|
|
},
|
|
'auth/identity-resolver',
|
|
'auth/oauth',
|
|
'auth/oidc',
|
|
'auth/add-auth-provider',
|
|
'auth/service-to-service-auth',
|
|
'auth/autologout',
|
|
'auth/troubleshooting',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Kubernetes',
|
|
items: [
|
|
'features/kubernetes/overview',
|
|
'features/kubernetes/installation',
|
|
'features/kubernetes/configuration',
|
|
'features/kubernetes/authentication',
|
|
'features/kubernetes/authentication-strategies',
|
|
'features/kubernetes/troubleshooting',
|
|
'features/kubernetes/proxy',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Notifications',
|
|
items: [
|
|
'notifications/index',
|
|
'notifications/processors',
|
|
'notifications/usage',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Permissions',
|
|
items: [
|
|
'permissions/overview',
|
|
'permissions/concepts',
|
|
'permissions/getting-started',
|
|
'permissions/writing-a-policy',
|
|
'permissions/frontend-integration',
|
|
'permissions/custom-rules',
|
|
{
|
|
type: 'category',
|
|
label: 'Tutorial: using Permissions in your plugin',
|
|
items: [
|
|
'permissions/plugin-authors/01-setup',
|
|
'permissions/plugin-authors/02-adding-a-basic-permission-check',
|
|
'permissions/plugin-authors/03-adding-a-resource-permission-check',
|
|
'permissions/plugin-authors/04-authorizing-access-to-paginated-data',
|
|
'permissions/plugin-authors/05-frontend-authorization',
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Search',
|
|
items: [
|
|
'features/search/search-overview',
|
|
'features/search/getting-started',
|
|
'features/search/concepts',
|
|
{
|
|
type: 'category',
|
|
label: 'API',
|
|
link:
|
|
searchSidebar.length > 0
|
|
? {
|
|
type: 'generated-index',
|
|
title: 'Search API',
|
|
slug: '/category/search-api',
|
|
}
|
|
: {
|
|
type: 'doc',
|
|
id: 'openapi/generated-docs/404',
|
|
},
|
|
items: searchSidebar,
|
|
},
|
|
'features/search/architecture',
|
|
'features/search/search-engines',
|
|
'features/search/collators',
|
|
'features/search/how-to-guides',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Software Catalog',
|
|
items: [
|
|
'features/software-catalog/software-catalog-overview',
|
|
'features/software-catalog/life-of-an-entity',
|
|
'features/software-catalog/configuration',
|
|
'features/software-catalog/system-model',
|
|
'features/software-catalog/descriptor-format',
|
|
'features/software-catalog/references',
|
|
'features/software-catalog/well-known-annotations',
|
|
'features/software-catalog/well-known-relations',
|
|
'features/software-catalog/well-known-statuses',
|
|
'features/software-catalog/extending-the-model',
|
|
'features/software-catalog/external-integrations',
|
|
'features/software-catalog/catalog-customization',
|
|
{
|
|
type: 'category',
|
|
label: 'API',
|
|
link:
|
|
catalogSidebar.length > 0
|
|
? {
|
|
type: 'generated-index',
|
|
title: 'Catalog API',
|
|
slug: '/category/catalog-api',
|
|
}
|
|
: {
|
|
type: 'doc',
|
|
id: 'openapi/generated-docs/404',
|
|
},
|
|
items: catalogSidebar,
|
|
},
|
|
'features/software-catalog/creating-the-catalog-graph',
|
|
'features/software-catalog/faq',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Software Templates',
|
|
items: [
|
|
'features/software-templates/software-templates-index',
|
|
'features/software-templates/configuration',
|
|
'features/software-templates/adding-templates',
|
|
'features/software-templates/writing-templates',
|
|
'features/software-templates/input-examples',
|
|
'features/software-templates/builtin-actions',
|
|
'features/software-templates/writing-custom-actions',
|
|
'features/software-templates/writing-tests-for-actions',
|
|
'features/software-templates/writing-custom-field-extensions',
|
|
'features/software-templates/writing-custom-step-layouts',
|
|
'features/software-templates/authorizing-scaffolder-template-details',
|
|
'features/software-templates/migrating-to-rjsf-v5',
|
|
'features/software-templates/migrating-from-v1beta2-to-v1beta3',
|
|
'features/software-templates/dry-run-testing',
|
|
'features/software-templates/experimental',
|
|
'features/software-templates/templating-extensions',
|
|
{
|
|
type: 'category',
|
|
label: 'API',
|
|
link:
|
|
scaffolderSidebar.length > 0
|
|
? {
|
|
type: 'generated-index',
|
|
title: 'Scaffolder API',
|
|
slug: '/category/scaffolder-api',
|
|
}
|
|
: {
|
|
type: 'doc',
|
|
id: 'openapi/generated-docs/404',
|
|
},
|
|
items: scaffolderSidebar,
|
|
},
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'TechDocs',
|
|
items: [
|
|
'features/techdocs/techdocs-overview',
|
|
'features/techdocs/getting-started',
|
|
'features/techdocs/concepts',
|
|
'features/techdocs/addons',
|
|
'features/techdocs/architecture',
|
|
'features/techdocs/extensions',
|
|
'features/techdocs/creating-and-publishing',
|
|
'features/techdocs/configuration',
|
|
'features/techdocs/using-cloud-storage',
|
|
'features/techdocs/configuring-ci-cd',
|
|
'features/techdocs/cli',
|
|
'features/techdocs/how-to-guides',
|
|
'features/techdocs/troubleshooting',
|
|
'features/techdocs/faqs',
|
|
],
|
|
},
|
|
],
|
|
Integrations: [
|
|
'integrations/index',
|
|
{
|
|
type: 'category',
|
|
label: 'AWS S3',
|
|
items: [
|
|
'integrations/aws-s3/locations',
|
|
'integrations/aws-s3/discovery',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Azure Blob Storage',
|
|
items: [
|
|
'integrations/azure-blobStorage/locations',
|
|
'integrations/azure-blobStorage/discovery',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Azure',
|
|
items: [
|
|
'integrations/azure/locations',
|
|
'integrations/azure/discovery',
|
|
'integrations/azure/org',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Bitbucket Cloud',
|
|
items: [
|
|
'integrations/bitbucketCloud/locations',
|
|
'integrations/bitbucketCloud/discovery',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Bitbucket Server',
|
|
items: [
|
|
'integrations/bitbucketServer/locations',
|
|
'integrations/bitbucketServer/discovery',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Datadog',
|
|
items: ['integrations/datadog-rum/installation'],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Gerrit',
|
|
items: [
|
|
'integrations/gerrit/locations',
|
|
'integrations/gerrit/discovery',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'GitHub',
|
|
items: [
|
|
'integrations/github/locations',
|
|
'integrations/github/discovery',
|
|
'integrations/github/org',
|
|
'integrations/github/github-apps',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'GitLab',
|
|
items: [
|
|
'integrations/gitlab/locations',
|
|
'integrations/gitlab/discovery',
|
|
'integrations/gitlab/org',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Gitea',
|
|
items: ['integrations/gitea/locations', 'integrations/gitea/discovery'],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Harness',
|
|
items: ['integrations/harness/locations'],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Google GCS',
|
|
items: ['integrations/google-cloud-storage/locations'],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'LDAP',
|
|
items: ['integrations/ldap/org'],
|
|
},
|
|
],
|
|
Plugins: [
|
|
'plugins/index',
|
|
'plugins/existing-plugins',
|
|
'plugins/create-a-plugin',
|
|
'plugins/plugin-development',
|
|
'plugins/structure-of-a-plugin',
|
|
'plugins/integrating-plugin-into-software-catalog',
|
|
'plugins/integrating-search-into-plugins',
|
|
'plugins/composability',
|
|
'plugins/internationalization',
|
|
'plugins/analytics',
|
|
'plugins/feature-flags',
|
|
{
|
|
type: 'category',
|
|
label: 'OpenAPI',
|
|
items: [
|
|
'openapi/01-getting-started',
|
|
'openapi/generate-client',
|
|
'openapi/test-case-validation',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Backends and APIs',
|
|
items: [
|
|
'plugins/proxying',
|
|
'plugins/backend-plugin',
|
|
'plugins/call-existing-api',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Testing',
|
|
items: ['plugins/testing'],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Publishing',
|
|
items: [
|
|
'plugins/publish-private',
|
|
'plugins/add-to-directory',
|
|
'plugins/observability',
|
|
],
|
|
},
|
|
],
|
|
Configuration: [
|
|
'conf/index',
|
|
'conf/reading',
|
|
'conf/writing',
|
|
'conf/defining',
|
|
],
|
|
Framework: [
|
|
{
|
|
type: 'category',
|
|
label: 'Backend System',
|
|
items: [
|
|
'backend-system/index',
|
|
{
|
|
type: 'category',
|
|
label: 'Architecture',
|
|
items: [
|
|
'backend-system/architecture/index',
|
|
'backend-system/architecture/services',
|
|
'backend-system/architecture/plugins',
|
|
'backend-system/architecture/extension-points',
|
|
'backend-system/architecture/modules',
|
|
'backend-system/architecture/feature-loaders',
|
|
'backend-system/architecture/naming-patterns',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Building Backends',
|
|
items: [
|
|
'backend-system/building-backends/index',
|
|
'backend-system/building-backends/migrating',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Building Plugins & Modules',
|
|
items: [
|
|
'backend-system/building-plugins-and-modules/index',
|
|
'backend-system/building-plugins-and-modules/testing',
|
|
'backend-system/building-plugins-and-modules/migrating',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Core Services',
|
|
items: [
|
|
'backend-system/core-services/index',
|
|
'backend-system/core-services/auditor',
|
|
'backend-system/core-services/auth',
|
|
'backend-system/core-services/cache',
|
|
'backend-system/core-services/database',
|
|
'backend-system/core-services/discovery',
|
|
'backend-system/core-services/http-auth',
|
|
'backend-system/core-services/http-router',
|
|
'backend-system/core-services/identity',
|
|
'backend-system/core-services/lifecycle',
|
|
'backend-system/core-services/logger',
|
|
'backend-system/core-services/permissions',
|
|
'backend-system/core-services/permissions-registry',
|
|
'backend-system/core-services/plugin-metadata',
|
|
'backend-system/core-services/root-config',
|
|
'backend-system/core-services/root-health',
|
|
'backend-system/core-services/root-instance-metadata',
|
|
'backend-system/core-services/root-http-router',
|
|
'backend-system/core-services/root-lifecycle',
|
|
'backend-system/core-services/root-logger',
|
|
'backend-system/core-services/scheduler',
|
|
'backend-system/core-services/token-manager',
|
|
'backend-system/core-services/url-reader',
|
|
'backend-system/core-services/user-info',
|
|
'backend-system/core-services/actions-registry',
|
|
'backend-system/core-services/actions',
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'New Frontend System',
|
|
items: [
|
|
'frontend-system/index',
|
|
{
|
|
type: 'category',
|
|
label: 'Architecture',
|
|
items: [
|
|
'frontend-system/architecture/index',
|
|
'frontend-system/architecture/app',
|
|
'frontend-system/architecture/plugins',
|
|
'frontend-system/architecture/extensions',
|
|
'frontend-system/architecture/extension-blueprints',
|
|
'frontend-system/architecture/extension-overrides',
|
|
'frontend-system/architecture/references',
|
|
'frontend-system/architecture/utility-apis',
|
|
'frontend-system/architecture/routes',
|
|
'frontend-system/architecture/naming-patterns',
|
|
'frontend-system/architecture/migrations',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Building Plugins',
|
|
items: [
|
|
'frontend-system/building-plugins/index',
|
|
'frontend-system/building-plugins/testing',
|
|
'frontend-system/building-plugins/common-extension-blueprints',
|
|
'frontend-system/building-plugins/built-in-data-refs',
|
|
'frontend-system/building-plugins/migrating',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Building Apps',
|
|
items: [
|
|
'frontend-system/building-apps/index',
|
|
'frontend-system/building-apps/configuring-extensions',
|
|
'frontend-system/building-apps/built-in-extensions',
|
|
'frontend-system/building-apps/plugin-conversion',
|
|
'frontend-system/building-apps/migrating',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Utility APIs',
|
|
items: [
|
|
'frontend-system/utility-apis/index',
|
|
'frontend-system/utility-apis/creating',
|
|
'frontend-system/utility-apis/consuming',
|
|
'frontend-system/utility-apis/configuring',
|
|
],
|
|
},
|
|
],
|
|
},
|
|
{
|
|
'Backstage CLI': [
|
|
'tooling/cli/overview',
|
|
'tooling/cli/build-system',
|
|
'tooling/cli/commands',
|
|
'tooling/cli/templates',
|
|
{
|
|
type: 'category',
|
|
label: 'Local Development',
|
|
items: [
|
|
'tooling/local-dev/linking-local-packages',
|
|
'tooling/local-dev/debugging',
|
|
'tooling/local-dev/profiling',
|
|
],
|
|
},
|
|
'tooling/package-metadata',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'User Interface',
|
|
items: [
|
|
'conf/user-interface/index',
|
|
'conf/user-interface/logo',
|
|
'conf/user-interface/icons',
|
|
'conf/user-interface/sidebar',
|
|
],
|
|
},
|
|
],
|
|
Tutorials: [
|
|
{ 'Non-technical': ['overview/adopting'] },
|
|
{
|
|
Technical: [
|
|
'tutorials/quickstart-app-plugin',
|
|
'tutorials/configuring-plugin-databases',
|
|
'tutorials/manual-knex-rollback',
|
|
'tutorials/switching-sqlite-postgres',
|
|
'tutorials/using-backstage-proxy-within-plugin',
|
|
'tutorials/enable-public-entry',
|
|
'tutorials/setup-opentelemetry',
|
|
'tutorials/integrating-event-driven-updates-with-entity-providers',
|
|
'accessibility/index',
|
|
],
|
|
},
|
|
{
|
|
Migrations: [
|
|
'tutorials/react-router-stable-migration',
|
|
'tutorials/react18-migration',
|
|
'tutorials/package-role-migration',
|
|
'tutorials/migrating-away-from-core',
|
|
'tutorials/yarn-migration',
|
|
'tutorials/migrate-to-mui5',
|
|
'tutorials/auth-service-migration',
|
|
'tutorials/jsx-transform-migration',
|
|
],
|
|
},
|
|
],
|
|
FAQ: ['faq/index', 'faq/product', 'faq/technical'],
|
|
Contribute: [
|
|
'contribute/index',
|
|
'contribute/getting-involved',
|
|
'contribute/project-structure',
|
|
],
|
|
References: [
|
|
{
|
|
'Designing for Backstage': [
|
|
'dls/design',
|
|
'dls/component-design-guidelines',
|
|
'dls/contributing-to-storybook',
|
|
'dls/figma',
|
|
],
|
|
},
|
|
{
|
|
type: 'category',
|
|
label: 'Architecture Decision Records (ADRs)',
|
|
items: [
|
|
'architecture-decisions/adrs-overview',
|
|
'architecture-decisions/adrs-adr001',
|
|
'architecture-decisions/adrs-adr002',
|
|
'architecture-decisions/adrs-adr003',
|
|
'architecture-decisions/adrs-adr004',
|
|
'architecture-decisions/adrs-adr005',
|
|
'architecture-decisions/adrs-adr006',
|
|
'architecture-decisions/adrs-adr007',
|
|
'architecture-decisions/adrs-adr008',
|
|
'architecture-decisions/adrs-adr009',
|
|
'architecture-decisions/adrs-adr010',
|
|
'architecture-decisions/adrs-adr011',
|
|
'architecture-decisions/adrs-adr012',
|
|
'architecture-decisions/adrs-adr013',
|
|
'architecture-decisions/adrs-adr014',
|
|
],
|
|
},
|
|
'api/deprecations',
|
|
'references/glossary',
|
|
'api/utility-apis',
|
|
'reference/index',
|
|
],
|
|
},
|
|
releases: {
|
|
'Release Notes': releases.map(release => `releases/${release}`),
|
|
},
|
|
};
|