app:
  title: Scaffolded Backstage App
  baseUrl: http://localhost:3000

  # Enable all packages by default, this will discover packages from packages/app/package.json
  packages: all

  extensions:
    # Default landing page configuration.
    # The catalog is mounted at /catalog by default but is overridden here to
    # serve as the root page. To switch to the Home page, comment out the
    # catalog path override and uncomment the home path override.
    - page:catalog:
        config:
          path: /
    # - page:home:
    #     config:
    #       path: /

    # Visit tracking records which pages users navigate to and is disabled by default.
    # Enable it to populate the Most Visited and Recently Visited widgets on the Home page.
    # Visit data is stored via UserSettings storage if available, otherwise browser localStorage.
    # - api:home/visits: true
    # - app-root-element:home/visit-listener: true
    - home-page-widget:home/toolkit:
        config:
          tools:
            - url: https://backstage.io/docs
              label: Docs
              icon: docs
            - url: https://github.com/backstage/backstage
              label: GitHub
              icon: github
            - url: https://github.com/backstage/backstage/blob/master/CONTRIBUTING.md
              label: Contributing
              icon: docs
            - url: https://backstage.io/plugins
              label: Plugins Directory
              icon: kind:component
            - url: https://github.com/backstage/backstage/issues/new/choose
              label: Submit New Issue
              icon: github
    - home-page-widget:home/world-clock:
        config:
          clockConfigs:
            - label: NYC
              timeZone: America/New_York
            - label: UTC
              timeZone: UTC
            - label: STO
              timeZone: Europe/Stockholm
            - label: TYO
              timeZone: Asia/Tokyo
    - page:home:
        config:
          defaultConfig:
            - component: HomePageSearchBar
              column: 0
              row: 0
              width: 12
              height: 2
              deletable: false
            - component: GettingStarted
              column: 0
              row: 1
              width: 4
              height: 11
            - component: HomePageStarredEntities
              column: 4
              row: 2
              width: 4
              height: 4
            - component: HomePageRandomJoke
              column: 8
              row: 2
              width: 4
              height: 4
            - component: HomePageToolkit
              column: 4
              row: 6
              width: 4
              height: 3
            - component: HomePageWorldClock
              column: 8
              row: 6
              width: 4
              height: 3
            - component: HomePageMostVisited
              column: 4
              row: 9
              width: 4
              height: 4
            - component: HomePageRecentlyVisited
              column: 8
              row: 9
              width: 4
              height: 4

organization:
  name: My Company

backend:
  # Used for enabling authentication, secret is shared by all backend plugins
  # See https://backstage.io/docs/auth/service-to-service-auth for
  # information on the format
  # auth:
  #   keys:
  #     - secret: ${BACKEND_SECRET}
  baseUrl: http://localhost:7007
  listen:
    port: 7007
    # Uncomment the following host directive to bind to specific interfaces
    # host: 127.0.0.1
  csp:
    connect-src: ["'self'", 'http:', 'https:']
    # Content-Security-Policy directives follow the Helmet format: https://helmetjs.github.io/#reference
    # Default Helmet Content-Security-Policy values can be removed by setting the key to false
  cors:
    origin: http://localhost:3000
    methods: [GET, HEAD, PATCH, POST, PUT, DELETE]
    credentials: true
  # This is for local development only, it is not recommended to use this in production
  # The production database configuration is stored in app-config.production.yaml
  database:
    client: better-sqlite3
    connection: ':memory:'
  # see https://backstage.io/docs/ai/mcp-actions#actions-configuration for more details
  actions:
    pluginSources:
      - auth
      - catalog
      - scaffolder
  # workingDirectory: /tmp # Use this to configure a working directory for the scaffolder, defaults to the OS temp-dir

integrations:
  github:
    - host: github.com
      # This is a Personal Access Token or PAT from GitHub. You can find out how to generate this token, and more information
      # about setting up the GitHub integration here: https://backstage.io/docs/integrations/github/locations#configuration
      token: ${GITHUB_TOKEN}
    ### Example for how to add your GitHub Enterprise instance using the API:
    # - host: ghe.example.net
    #   apiBaseUrl: https://ghe.example.net/api/v3
    #   token: ${GHE_TOKEN}

proxy:
  ### Example for how to add a proxy endpoint for the frontend.
  ### A typical reason to do this is to handle HTTPS and CORS for internal services.
  # endpoints:
  #   '/test':
  #     target: 'https://example.com'
  #     changeOrigin: true

# Reference documentation http://backstage.io/docs/features/techdocs/configuration
# Note: After experimenting with basic setup, use CI/CD to generate docs
# and an external cloud storage when deploying TechDocs for production use-case.
# https://backstage.io/docs/features/techdocs/how-to-guides#how-to-migrate-from-techdocs-basic-to-recommended-deployment-approach
techdocs:
  builder: 'local' # Alternatives - 'external'
  generator:
    runIn: 'docker' # Alternatives - 'local'
  publisher:
    type: 'local' # Alternatives - 'googleGcs' or 'awsS3'. Read documentation for using alternatives.

auth:
  # see https://backstage.io/docs/auth/ to learn about auth providers
  providers:
    # See https://backstage.io/docs/auth/guest/provider
    guest: {}
  # see https://backstage.io/docs/ai/mcp-actions#client-id-metadata-documents
  # to learn more about client id metadata documents
  clientIdMetadataDocuments:
    enabled: false
    # Optional: restrict which `client_id` URLs are allowed (defaults to ['*'])
    # allowedClientIdPatterns:
    #   - 'https://example.com/*'
    #   - 'https://*.trusted-domain.com/*'
    # Optional: restrict which redirect URIs are allowed (defaults to ['*'])
    # allowedRedirectUriPatterns:
    #   - 'http://localhost:*'
    #   - 'https://*.example.com/*'

scaffolder:
  # see https://backstage.io/docs/features/software-templates/configuration for software template options

catalog:
  import:
    entityFilename: catalog-info.yaml
    pullRequestBranchName: backstage-integration
  rules:
    - allow: [Component, System, API, Resource, Location]
  locations:
    # Local example data, file locations are relative to the backend process, typically `packages/backend`
    - type: file
      target: ../../examples/entities.yaml

    # Local example template
    - type: file
      target: ../../examples/template/template.yaml
      rules:
        - allow: [Template]

    # Local example organizational data
    - type: file
      target: ../../examples/org.yaml
      rules:
        - allow: [User, Group]

    ## Uncomment these lines to add more example data
    # - type: url
    #   target: https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/all.yaml

    ## Uncomment these lines to add an example org
    # - type: url
    #   target: https://github.com/backstage/backstage/blob/master/packages/catalog-model/examples/acme-corp.yaml
    #   rules:
    #     - allow: [User, Group]

kubernetes:
  # see https://backstage.io/docs/features/kubernetes/configuration for kubernetes configuration options

# see https://backstage.io/docs/permissions/getting-started for more on the permission framework
permission:
  # setting this to `false` will disable permissions
  enabled: true

# see https://backstage.io/docs/ai/mcp-actions for more details
mcpActions:
  name: 'My Company Backstage' # defaults to "backstage"
  description: 'Tools for managing your software catalog, creating new services from templates, and exploring your developer portal' # optional
