chore: move sidebar to .mjs
Co-authored-by: Fredrik Adelöw <freben@users.noreply.github.com> Co-authored-by: Camila Belo <camilaibs@gmail.com> Co-authored-by: Patrik Oldsberg <poldsberg@gmail.com> Co-authored-by: Johan Haals <johan@haals.se>:wq Signed-off-by: blam <ben@blam.sh>
This commit is contained in:
@@ -85,7 +85,7 @@ const config: Config = {
|
||||
docs: {
|
||||
editUrl: 'https://github.com/backstage/backstage/edit/master/docs/',
|
||||
path: '../docs',
|
||||
sidebarPath: 'sidebars.json',
|
||||
sidebarPath: 'sidebars.mjs',
|
||||
...(useVersionedDocs
|
||||
? {
|
||||
includeCurrentVersion: true,
|
||||
|
||||
@@ -1,561 +0,0 @@
|
||||
{
|
||||
"docs": {
|
||||
"Overview": [
|
||||
"overview/what-is-backstage",
|
||||
"overview/architecture-overview",
|
||||
"overview/roadmap",
|
||||
"overview/vision",
|
||||
"overview/background",
|
||||
"overview/adopting",
|
||||
"overview/versioning-policy",
|
||||
"overview/threat-model",
|
||||
"overview/support",
|
||||
"overview/logos"
|
||||
],
|
||||
"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/app-custom-theme",
|
||||
"getting-started/homepage"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "category",
|
||||
"label": "Using Backstage",
|
||||
"items": [
|
||||
"getting-started/logging-in",
|
||||
"getting-started/register-a-component",
|
||||
"getting-started/create-a-component"
|
||||
]
|
||||
},
|
||||
"getting-started/keeping-backstage-updated",
|
||||
"getting-started/concepts"
|
||||
],
|
||||
"Core Features": [
|
||||
{
|
||||
"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",
|
||||
"features/software-catalog/software-catalog-api",
|
||||
"features/software-catalog/creating-the-catalog-graph",
|
||||
"features/software-catalog/faq"
|
||||
]
|
||||
},
|
||||
{
|
||||
"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": "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"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "category",
|
||||
"label": "Backstage Search",
|
||||
"items": [
|
||||
"features/search/search-overview",
|
||||
"features/search/getting-started",
|
||||
"features/search/concepts",
|
||||
"features/search/architecture",
|
||||
"features/search/search-engines",
|
||||
"features/search/collators",
|
||||
"features/search/how-to-guides"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "category",
|
||||
"label": "TechDocs",
|
||||
"items": [
|
||||
"features/techdocs/techdocs-overview",
|
||||
"features/techdocs/getting-started",
|
||||
"features/techdocs/concepts",
|
||||
"features/techdocs/addons",
|
||||
"features/techdocs/architecture",
|
||||
"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",
|
||||
"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"]
|
||||
},
|
||||
{
|
||||
"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"
|
||||
],
|
||||
"Notifications": ["notifications/index"],
|
||||
"Auth and identity": [
|
||||
"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"
|
||||
],
|
||||
"Permissions": [
|
||||
"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"
|
||||
]
|
||||
}
|
||||
],
|
||||
"Tooling": [
|
||||
{
|
||||
"type": "category",
|
||||
"label": "Backstage CLI",
|
||||
"items": [
|
||||
"tooling/cli/overview",
|
||||
"tooling/cli/build-system",
|
||||
"tooling/cli/commands"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "category",
|
||||
"label": "Local Development",
|
||||
"items": [
|
||||
"tooling/local-dev/linking-local-packages",
|
||||
"tooling/local-dev/debugging",
|
||||
"tooling/local-dev/profiling"
|
||||
]
|
||||
},
|
||||
"tooling/package-metadata"
|
||||
],
|
||||
"Deployment": [
|
||||
"deployment/index",
|
||||
"deployment/scaling",
|
||||
"deployment/docker",
|
||||
"deployment/k8s",
|
||||
"deployment/heroku",
|
||||
"deployment/koyeb",
|
||||
"deployment/flightcontrol",
|
||||
{
|
||||
"type": "category",
|
||||
"label": "Using Backstage Deploy (alpha)",
|
||||
"items": ["deployment/backstage-deploy/aws-lightsail"]
|
||||
}
|
||||
],
|
||||
"New Backend System": [
|
||||
"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/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/plugin-metadata",
|
||||
"backend-system/core-services/root-config",
|
||||
"backend-system/core-services/root-health",
|
||||
"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"
|
||||
]
|
||||
}
|
||||
],
|
||||
"New Frontend System": [
|
||||
"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"
|
||||
]
|
||||
}
|
||||
],
|
||||
"Designing for Backstage": [
|
||||
"dls/design",
|
||||
"dls/component-design-guidelines",
|
||||
"dls/contributing-to-storybook",
|
||||
"dls/figma"
|
||||
],
|
||||
"API Reference": [
|
||||
{
|
||||
"type": "category",
|
||||
"label": "Guides",
|
||||
"items": ["api/utility-apis"]
|
||||
},
|
||||
{
|
||||
"type": "category",
|
||||
"label": "API Reference",
|
||||
"items": ["reference/index"]
|
||||
},
|
||||
"api/deprecations"
|
||||
],
|
||||
"Tutorials": [
|
||||
"tutorials/quickstart-app-plugin",
|
||||
"tutorials/react-router-stable-migration",
|
||||
"tutorials/react18-migration",
|
||||
"tutorials/package-role-migration",
|
||||
"tutorials/migrating-away-from-core",
|
||||
"tutorials/configuring-plugin-databases",
|
||||
"tutorials/switching-sqlite-postgres",
|
||||
"tutorials/using-backstage-proxy-within-plugin",
|
||||
"tutorials/yarn-migration",
|
||||
"tutorials/migrate-to-mui5",
|
||||
"tutorials/auth-service-migration",
|
||||
"tutorials/enable-public-entry",
|
||||
"tutorials/setup-opentelemetry"
|
||||
],
|
||||
"Architecture Decision Records (ADRs)": [
|
||||
"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"
|
||||
],
|
||||
"FAQ": ["faq/index", "faq/product", "faq/technical"],
|
||||
"Accessibility": ["accessibility/index"],
|
||||
"Contribute": [
|
||||
"contribute/index",
|
||||
"contribute/getting-involved",
|
||||
"contribute/project-structure"
|
||||
],
|
||||
"References": ["references/glossary"]
|
||||
},
|
||||
"releases": {
|
||||
"Release Notes": [
|
||||
"releases/v1.30.0",
|
||||
"releases/v1.29.0",
|
||||
"releases/v1.28.0",
|
||||
"releases/v1.27.0",
|
||||
"releases/v1.26.0",
|
||||
"releases/v1.25.0",
|
||||
"releases/v1.24.0",
|
||||
"releases/v1.23.0",
|
||||
"releases/v1.22.0",
|
||||
"releases/v1.21.0",
|
||||
"releases/v1.20.0",
|
||||
"releases/v1.19.0",
|
||||
"releases/v1.18.0",
|
||||
"releases/v1.17.0",
|
||||
"releases/v1.16.0",
|
||||
"releases/v1.15.0",
|
||||
"releases/v1.14.0",
|
||||
"releases/v1.13.0",
|
||||
"releases/v1.12.0",
|
||||
"releases/v1.11.0",
|
||||
"releases/v1.10.0",
|
||||
"releases/v1.9.0",
|
||||
"releases/v1.8.0",
|
||||
"releases/v1.7.0",
|
||||
"releases/v1.6.0",
|
||||
"releases/v1.5.0",
|
||||
"releases/v1.4.0",
|
||||
"releases/v1.3.0",
|
||||
"releases/v1.2.0",
|
||||
"releases/v1.1.0",
|
||||
"releases/v1.0.0"
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,548 @@
|
||||
import fs from 'node:fs';
|
||||
import path from 'node:path';
|
||||
|
||||
const docsDir = path.resolve(
|
||||
path.dirname(new URL(import.meta.url).pathname),
|
||||
'../docs',
|
||||
);
|
||||
|
||||
const allReleaseDocs = fs.readdirSync(path.resolve(docsDir, 'releases'));
|
||||
const mainRleases = allReleaseDocs
|
||||
.filter(doc => doc.match(/^v\d+\.\d+\.\d+\.md$/))
|
||||
.map(doc => doc.replace(/\.md$/, ''))
|
||||
.sort((a, b) => { // Semver sort
|
||||
const aVal = a.slice(1).split('.').reduce((acc, val) => acc * 1000 + parseInt(val), 0);
|
||||
const bVal = b.slice(1).split('.').reduce((acc, val) => acc * 1000 + parseInt(val), 0);
|
||||
return bVal - aVal;
|
||||
})
|
||||
.map(release => `releases/${release}`);
|
||||
|
||||
export default {
|
||||
docs: {
|
||||
Overview: [
|
||||
'overview/what-is-backstage',
|
||||
'overview/architecture-overview',
|
||||
'overview/roadmap',
|
||||
'overview/vision',
|
||||
'overview/background',
|
||||
'overview/adopting',
|
||||
'overview/versioning-policy',
|
||||
'overview/threat-model',
|
||||
'overview/support',
|
||||
'overview/logos',
|
||||
],
|
||||
'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/app-custom-theme',
|
||||
'getting-started/homepage',
|
||||
],
|
||||
},
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Using Backstage',
|
||||
items: [
|
||||
'getting-started/logging-in',
|
||||
'getting-started/register-a-component',
|
||||
'getting-started/create-a-component',
|
||||
],
|
||||
},
|
||||
'getting-started/keeping-backstage-updated',
|
||||
'getting-started/concepts',
|
||||
],
|
||||
'Core Features': [
|
||||
{
|
||||
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',
|
||||
'features/software-catalog/software-catalog-api',
|
||||
'features/software-catalog/creating-the-catalog-graph',
|
||||
'features/software-catalog/faq',
|
||||
],
|
||||
},
|
||||
{
|
||||
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: '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',
|
||||
],
|
||||
},
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Backstage Search',
|
||||
items: [
|
||||
'features/search/search-overview',
|
||||
'features/search/getting-started',
|
||||
'features/search/concepts',
|
||||
'features/search/architecture',
|
||||
'features/search/search-engines',
|
||||
'features/search/collators',
|
||||
'features/search/how-to-guides',
|
||||
],
|
||||
},
|
||||
{
|
||||
type: 'category',
|
||||
label: 'TechDocs',
|
||||
items: [
|
||||
'features/techdocs/techdocs-overview',
|
||||
'features/techdocs/getting-started',
|
||||
'features/techdocs/concepts',
|
||||
'features/techdocs/addons',
|
||||
'features/techdocs/architecture',
|
||||
'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',
|
||||
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'],
|
||||
},
|
||||
{
|
||||
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',
|
||||
],
|
||||
Notifications: ['notifications/index'],
|
||||
'Auth and identity': [
|
||||
'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',
|
||||
],
|
||||
Permissions: [
|
||||
'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',
|
||||
],
|
||||
},
|
||||
],
|
||||
Tooling: [
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Backstage CLI',
|
||||
items: [
|
||||
'tooling/cli/overview',
|
||||
'tooling/cli/build-system',
|
||||
'tooling/cli/commands',
|
||||
],
|
||||
},
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Local Development',
|
||||
items: [
|
||||
'tooling/local-dev/linking-local-packages',
|
||||
'tooling/local-dev/debugging',
|
||||
'tooling/local-dev/profiling',
|
||||
],
|
||||
},
|
||||
'tooling/package-metadata',
|
||||
],
|
||||
Deployment: [
|
||||
'deployment/index',
|
||||
'deployment/scaling',
|
||||
'deployment/docker',
|
||||
'deployment/k8s',
|
||||
'deployment/heroku',
|
||||
'deployment/koyeb',
|
||||
'deployment/flightcontrol',
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Using Backstage Deploy (alpha)',
|
||||
items: ['deployment/backstage-deploy/aws-lightsail'],
|
||||
},
|
||||
],
|
||||
'New Backend System': [
|
||||
'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/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/plugin-metadata',
|
||||
'backend-system/core-services/root-config',
|
||||
'backend-system/core-services/root-health',
|
||||
'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',
|
||||
],
|
||||
},
|
||||
],
|
||||
'New Frontend System': [
|
||||
'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',
|
||||
],
|
||||
},
|
||||
],
|
||||
'Designing for Backstage': [
|
||||
'dls/design',
|
||||
'dls/component-design-guidelines',
|
||||
'dls/contributing-to-storybook',
|
||||
'dls/figma',
|
||||
],
|
||||
'API Reference': [
|
||||
{
|
||||
type: 'category',
|
||||
label: 'Guides',
|
||||
items: ['api/utility-apis'],
|
||||
},
|
||||
{
|
||||
type: 'category',
|
||||
label: 'API Reference',
|
||||
items: ['reference/index'],
|
||||
},
|
||||
'api/deprecations',
|
||||
],
|
||||
Tutorials: [
|
||||
'tutorials/quickstart-app-plugin',
|
||||
'tutorials/react-router-stable-migration',
|
||||
'tutorials/react18-migration',
|
||||
'tutorials/package-role-migration',
|
||||
'tutorials/migrating-away-from-core',
|
||||
'tutorials/configuring-plugin-databases',
|
||||
'tutorials/switching-sqlite-postgres',
|
||||
'tutorials/using-backstage-proxy-within-plugin',
|
||||
'tutorials/yarn-migration',
|
||||
'tutorials/migrate-to-mui5',
|
||||
'tutorials/auth-service-migration',
|
||||
'tutorials/enable-public-entry',
|
||||
'tutorials/setup-opentelemetry',
|
||||
],
|
||||
'Architecture Decision Records (ADRs)': [
|
||||
'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',
|
||||
],
|
||||
FAQ: ['faq/index', 'faq/product', 'faq/technical'],
|
||||
Accessibility: ['accessibility/index'],
|
||||
Contribute: [
|
||||
'contribute/index',
|
||||
'contribute/getting-involved',
|
||||
'contribute/project-structure',
|
||||
],
|
||||
References: ['references/glossary'],
|
||||
},
|
||||
releases: {
|
||||
'Release Notes': mainRleases
|
||||
},
|
||||
};
|
||||
Reference in New Issue
Block a user