app: title: Backstage Uffizzi Environment baseUrl: ${UFFIZZI_URL} organization: name: My Company backend: baseUrl: ${UFFIZZI_URL} auth: keys: # random mock key for Uffizzi deployments - secret: 5TXvdjVZFxF7qf9K5RAYRDoGrLzJooqa listen: port: 7007 database: client: pg connection: host: ${POSTGRES_HOST} port: ${POSTGRES_PORT} user: ${POSTGRES_USER} password: ${POSTGRES_PASSWORD} cors: origin: ${UFFIZZI_URL} methods: [GET, HEAD, PATCH, POST, PUT, DELETE] credentials: true csp: connect-src: ["'self'", 'http:', 'https:'] img-src: ["'self'", 'data:', 'https://cdnjs.cloudflare.com'] # 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 auth: environment: production providers: {} proxy: enabled: true url: https://demo.backstage.io/api/auth catalog: rules: - allow: - Component - API - Resource - System - Domain - Location locations: - type: url target: https://github.com/backstage/backstage/blob/${REF_NAME}/packages/catalog-model/examples/all.yaml - type: url target: https://github.com/backstage/backstage/blob/${REF_NAME}/plugins/techdocs-backend/examples/documented-component-uffizzi/catalog-info.yaml - type: url target: https://github.com/backstage/backstage/blob/${REF_NAME}/packages/catalog-model/examples/acme-corp.yaml rules: - allow: [User, Group] - type: url target: https://github.com/backstage/backstage/blob/${REF_NAME}/plugins/scaffolder-backend/sample-templates/all-templates.yaml rules: - allow: [Template] proxy: endpoints: '/circleci/api': target: https://circleci.com/api/v1.1 headers: Circle-Token: ${CIRCLECI_AUTH_TOKEN} '/jenkins/api': target: http://localhost:8080 headers: Authorization: ${JENKINS_BASIC_AUTH_HEADER} '/travisci/api': target: https://api.travis-ci.com changeOrigin: true headers: Authorization: ${TRAVISCI_AUTH_TOKEN} travis-api-version: '3' '/newrelic/apm/api': target: https://api.newrelic.com/v2 headers: X-Api-Key: ${NEW_RELIC_REST_API_KEY} '/newrelic/api': target: https://api.newrelic.com headers: X-Api-Key: ${NEW_RELIC_USER_KEY} '/pagerduty': target: https://api.pagerduty.com headers: Authorization: Token token=${PAGERDUTY_TOKEN} '/buildkite/api': target: https://api.buildkite.com/v2/ headers: Authorization: ${BUILDKITE_TOKEN} '/sentry/api': target: https://sentry.io/api/ allowedMethods: ['GET'] headers: Authorization: ${SENTRY_TOKEN} '/ilert': target: https://api.ilert.com allowedMethods: ['GET', 'POST', 'PUT'] allowedHeaders: ['Authorization'] headers: Authorization: ${ILERT_AUTH_HEADER} '/airflow': target: https://your.airflow.instance.com/api/v1 headers: Authorization: ${AIRFLOW_BASIC_AUTH_HEADER} '/gocd': target: https://your.gocd.instance.com/go/api allowedMethods: ['GET'] allowedHeaders: ['Authorization'] headers: Authorization: Basic ${GOCD_AUTH_CREDENTIALS} '/dynatrace': target: https://your.dynatrace.instance.com/api/v2 headers: Authorization: 'Api-Token ${DYNATRACE_ACCESS_TOKEN}' techdocs: builder: 'local' # Alternatives - 'external' generator: runIn: 'local' # dockerImage: my-org/techdocs # use a custom docker image # pullImage: true # or false to disable automatic pulling of image (e.g. if custom docker login is required) publisher: type: 'local' # Alternatives - 'googleGcs' or 'awsS3' or 'azureBlobStorage' or 'openStackSwift'. Read documentation for using alternatives. dynatrace: baseUrl: https://your.dynatrace.instance.com nomad: addr: 0.0.0.0 # Score-cards sample configuration. scorecards: jsonDataUrl: https://raw.githubusercontent.com/Oriflame/backstage-plugins/main/plugins/score-card/sample-data/ wikiLinkTemplate: https://link-to-wiki/{id} sentry: organization: my-company rollbar: organization: my-company # NOTE: The rollbar-backend & accountToken key may be deprecated in the future (replaced by a proxy config) accountToken: my-rollbar-account-token lighthouse: baseUrl: http://localhost:3003 kubernetes: serviceLocatorMethod: type: 'multiTenant' clusterLocatorMethods: - type: 'config' clusters: - url: ${UFFIZZI_CLUSTER_APISERVER} name: uffizzi authProvider: 'serviceAccount' kafka: clientId: backstage clusters: - name: cluster dashboardUrl: https://akhq.io/ brokers: - localhost:9092 allure: baseUrl: http://localhost:5050/allure-docker-service integrations: github: - host: github.com 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} ### Example for how to add your GitHub Enterprise instance using raw HTTP fetches (token is optional): # - host: ghe.example.net # rawBaseUrl: https://ghe.example.net/raw # token: ${GHE_TOKEN} gitlab: - host: gitlab.com token: ${GITLAB_TOKEN} ### Example for how to add a bitbucket cloud integration # bitbucketCloud: # - username: ${BITBUCKET_USERNAME} # appPassword: ${BITBUCKET_APP_PASSWORD} ### Example for how to add your bitbucket server instance using the API: # - host: server.bitbucket.com # apiBaseUrl: server.bitbucket.com # username: ${BITBUCKET_SERVER_USERNAME} # appPassword: ${BITBUCKET_SERVER_APP_PASSWORD} azure: - host: dev.azure.com token: ${AZURE_TOKEN} # googleGcs: # clientEmail: 'example@example.com' # privateKey: ${GCS_PRIVATE_KEY} awsS3: - host: amazonaws.com accessKeyId: ${AWS_ACCESS_KEY_ID} secretAccessKey: ${AWS_SECRET_ACCESS_KEY} costInsights: engineerCost: 200000 engineerThreshold: 0.5 products: computeEngine: name: Compute Engine icon: compute cloudDataflow: name: Cloud Dataflow icon: data cloudStorage: name: Cloud Storage icon: storage bigQuery: name: BigQuery icon: search events: name: Events icon: data metrics: DAU: name: Daily Active Users default: true MSC: name: Monthly Subscribers currencies: engineers: label: 'Engineers 🛠' unit: 'engineer' usd: label: 'US Dollars 💵' kind: 'USD' unit: 'dollar' prefix: '$' rate: 1 carbonOffsetTons: label: 'Carbon Offset Tons ♻️⚖️s' kind: 'CARBON_OFFSET_TONS' unit: 'carbon offset ton' rate: 3.5 beers: label: 'Beers 🍺' kind: 'BEERS' unit: 'beer' rate: 4.5 pintsIceCream: label: 'Pints of Ice Cream 🍦' kind: 'PINTS_OF_ICE_CREAM' unit: 'ice cream pint' rate: 5.5 pagerduty: eventsBaseUrl: 'https://events.pagerduty.com/v2' jenkins: instances: - name: default baseUrl: https://jenkins.example.com username: backstage-bot apiKey: 123456789abcdef0123456789abcedf012 azureDevOps: host: dev.azure.com token: my-token organization: my-company apacheAirflow: baseUrl: https://your.airflow.instance.com gocd: baseUrl: https://your.gocd.instance.com permission: enabled: true search: query: pageLimit: 50