1
+ app :
2
+ title : Janus IDP Backstage Showcase
3
+ baseUrl : http://localhost:3000
4
+ # Plugin: Segment
5
+ analytics :
6
+ segment :
7
+ writeKey : ${SEGMENT_WRITE_KEY}
8
+ maskIP : ${SEGMENT_MASK_IP} # prevents IP addresses from being sent if true
9
+ testMode : ${SEGMENT_TEST_MODE} # prevents data from being sent if true
10
+ branding :
11
+ fullLogo : ${BASE64_EMBEDDED_FULL_LOGO}
12
+ iconLogo : ${BASE64_EMBEDDED_ICON_LOGO}
13
+ theme :
14
+ light :
15
+ primaryColor : ${PRIMARY_LIGHT_COLOR}
16
+ headerColor1 : ${HEADER_LIGHT_COLOR_1}
17
+ headerColor2 : ${HEADER_LIGHT_COLOR_2}
18
+ navigationIndicatorColor : ${NAV_INDICATOR_LIGHT_COLOR}
19
+ dark :
20
+ primaryColor : ${PRIMARY_DARK_COLOR}
21
+ headerColor1 : ${HEADER_DARK_COLOR_1}
22
+ headerColor2 : ${HEADER_DARK_COLOR_2}
23
+ navigationIndicatorColor : ${NAV_INDICATOR_DARK_COLOR}
24
+ organization :
25
+ name : My Org
26
+
27
+ backend :
28
+ # Required for authentication. This secret is shared by all backend plugins.
29
+ # In development mode a temporary secret is automatically created.
30
+ # See https://backstage.io/docs/auth/service-to-service-auth for
31
+ # information on the format
32
+ # auth:
33
+ # keys:
34
+ # - secret: ${BACKEND_AUTH_SECRET}
35
+ baseUrl : http://localhost:7007
36
+ listen :
37
+ port : 7007
38
+ # Uncomment the following host directive to bind to specific interfaces
39
+ # host: 127.0.0.1
40
+ csp :
41
+ # Content-Security-Policy directives follow the Helmet format: https://helmetjs.github.io/#reference
42
+ # Default Helmet Content-Security-Policy values can be removed by setting the key to false
43
+ connect-src :
44
+ - " 'self'"
45
+ - ' http:'
46
+ - ' https:'
47
+ # Plugin: Jira
48
+ img-src :
49
+ # "'self'" and 'data' are from the backstage default but must be set since img-src is overwritten
50
+ - " 'self'"
51
+ - ' data:'
52
+ # Allow your Jira instance for @roadiehq/backstage-plugin-jira
53
+ - ${JIRA_URL}
54
+ cors :
55
+ origin : http://localhost:3000
56
+ methods : [GET, HEAD, PATCH, POST, PUT, DELETE]
57
+ credentials : true
58
+ # This is for local development only, it is not recommended to use this in production
59
+ # The production database configuration is stored in app-config.production.yaml
60
+ database :
61
+ client : better-sqlite3
62
+ connection : ' :memory:'
63
+ # workingDirectory: /tmp # Use this to configure a working directory for the scaffolder, defaults to the OS temp-dir
64
+
65
+ integrations :
66
+ # Plugin: GitHub
67
+ github :
68
+ - host : github.com
69
+ # This is a GitHub App. You can find out how to generate this file, and more information
70
+ # about setting up the GitHub integration here: https://backstage.io/docs/integrations/github/github-apps
71
+ apps :
72
+ # - $include: github-app-backstage-showcase-credentials.yaml
73
+ - appId : ${GITHUB_APP_APP_ID}
74
+ webhookUrl : ${GITHUB_APP_WEBHOOK_URL}
75
+ clientId : ${GITHUB_APP_CLIENT_ID}
76
+ clientSecret : ${GITHUB_APP_CLIENT_SECRET}
77
+ webhookSecret : ${GITHUB_APP_WEBHOOK_SECRET}
78
+ privateKey : |
79
+ ${GITHUB_APP_PRIVATE_KEY}
80
+
81
+ # Plugin: GitLab
82
+ gitlab :
83
+ - host : ${GITLAB_HOST}
84
+ token : ${GITLAB_TOKEN}
85
+ apiBaseUrl : ${GITLAB_API_BASE_URL}
86
+
87
+ # Plugin: Azure DevOps
88
+ azure :
89
+ - host : dev.azure.com
90
+ token : ${AZURE_TOKEN}
91
+
92
+ # Plugin: Bitbucket Server
93
+ bitbucketServer :
94
+ - host : ${BITBUCKET_SERVER_HOST}
95
+ apiBaseUrl : ${BITBUCKET_API_BASE_URL}
96
+ username : ${BITBUCKET_SERVER_USERNAME}
97
+ password : ${BITBUCKET_SERVER_PASSWORD}
98
+
99
+ # Plugin: Azure DevOps
100
+ azureDevOps :
101
+ host : dev.azure.com
102
+ token : ${AZURE_TOKEN}
103
+ organization : ${AZURE_ORG}
104
+
105
+ proxy :
106
+ endpoints :
107
+ # Plugin: Quay
108
+ ' /quay/api ' :
109
+ target : https://quay.io/
110
+ headers :
111
+ X-Requested-With : ' XMLHttpRequest'
112
+ # Uncomment the following line to access a private Quay Repository using a token
113
+ # Authorization: 'Bearer <YOUR TOKEN>'
114
+ changeOrigin : true
115
+ secure : true
116
+
117
+ # Plugin: SonarQube
118
+ ' /sonarqube ' :
119
+ # if not using sonarqube, assign SONARQUBE_URL to https://sonarcloud.io
120
+ # target: https://sonarcloud.io/api
121
+ target : ${SONARQUBE_URL}/api
122
+ allowedMethods : ['GET']
123
+ auth : ${SONARQUBE_TOKEN}
124
+
125
+ # Plugin: Jenkins
126
+ ' /jenkins/api ' :
127
+ target : ${JENKINS_URL}
128
+ headers :
129
+ Authorization : ${JENKINS_TOKEN}
130
+
131
+ # Plugin: Jira
132
+ ' /jira/api ' :
133
+ target : ${JIRA_URL}
134
+ headers :
135
+ Authorization : ${JIRA_TOKEN}
136
+ Accept : ' application/json'
137
+ Content-Type : ' application/json'
138
+ X-Atlassian-Token : ' no-check'
139
+ User-Agent : ${JIRA_USER_AGENT}
140
+
141
+ # Plugin: Jfrog Artifactory
142
+ ' /jfrog-artifactory/api ' :
143
+ target : ${ARTIFACTORY_URL}
144
+ headers :
145
+ Authorization : Bearer ${ARTIFACTORY_TOKEN}
146
+ # Change to "false" in case of using self hosted artifactory instance with a self-signed certificate
147
+ secure : ${ARTIFACTORY_SECURE}
148
+
149
+ # Plugin: PagerDuty
150
+ ' /pagerduty ' :
151
+ target : https://api.pagerduty.com
152
+ headers :
153
+ Authorization : Token token=${PAGERDUTY_TOKEN}
154
+
155
+ # Plugin: Dynatrace
156
+ ' /dynatrace ' :
157
+ target : ${DYNATRACE_API_URL}
158
+ headers :
159
+ # This API access token requires entities.read and problems.read permissions
160
+ # For more info on how to generate this token: https://www.dynatrace.com/support/help/dynatrace-api/basics/dynatrace-api-authentication
161
+ Authorization : ' Api-Token ${DYNATRACE_ACCESS_TOKEN}'
162
+
163
+ # Plugin: Nexus Repository Manager
164
+ ' /nexus-repository-manager ' :
165
+ target : ${NEXUS_REPOSITORY_MANAGER_URL}
166
+ headers :
167
+ X-Requested-With : ' XMLHttpRequest'
168
+ # Uncomment the following line to access a private Nexus Repository Manager using a token
169
+ # Authorization: 'Bearer <NEXUS_REPOSITORY_MANAGER_TOKEN>'
170
+ changeOrigin : true
171
+ # Change to "false" in case of using self hosted Nexus Repository Manager instance with a self-signed certificate
172
+ secure : ${NEXUS_REPOSITORY_MANAGER_SECURE}
173
+
174
+ # Reference documentation http://backstage.io/docs/features/techdocs/configuration
175
+ # Note: After experimenting with basic setup, use CI/CD to generate docs
176
+ # and an external cloud storage when deploying TechDocs for production use-case.
177
+ # https://backstage.io/docs/features/techdocs/how-to-guides#how-to-migrate-from-techdocs-basic-to-recommended-deployment-approach
178
+
179
+ # Plugin: TechDocs
180
+ techdocs :
181
+ builder : ${TECHDOCS_BUILDER_TYPE}
182
+ generator :
183
+ runIn : ${TECHDOCS_GENERATOR_TYPE}
184
+ publisher :
185
+ type : ${TECHDOCS_PUBLISHER_TYPE}
186
+ awsS3 :
187
+ bucketName : ${BUCKET_NAME}
188
+ region : ${BUCKET_REGION_VAULT}
189
+ endpoint : ${BUCKET_URL}
190
+ s3ForcePathStyle : true
191
+ credentials :
192
+ accessKeyId : ${AWS_ACCESS_KEY_ID}
193
+ secretAccessKey : ${AWS_SECRET_ACCESS_KEY}
194
+
195
+ auth :
196
+ # see https://backstage.io/docs/auth/ to learn about auth providers
197
+ environment : development
198
+ providers :
199
+ # Plugin: GitHub
200
+ github :
201
+ development :
202
+ clientId : ${AUTH_GITHUB_CLIENT_ID}
203
+ clientSecret : ${AUTH_GITHUB_CLIENT_SECRET}
204
+
205
+ scaffolder :
206
+ {}
207
+ # see https://backstage.io/docs/features/software-templates/configuration for software template options
208
+
209
+ catalog :
210
+ import :
211
+ entityFilename : catalog-info.yaml
212
+ pullRequestBranchName : backstage-integration
213
+ rules :
214
+ - allow : [Component, System, Group, Resource, Location, Template, API]
215
+ locations :
216
+ - type : url
217
+ target : https://github.com/janus-idp/backstage-showcase/blob/main/catalog-entities/all.yaml
218
+
219
+ - type : url
220
+ target : https://github.com/janus-idp/software-templates/blob/main/showcase-templates.yaml
221
+
222
+ providers :
223
+ # Plugin: Keycloak
224
+ keycloakOrg :
225
+ default :
226
+ baseUrl : ${KEYCLOAK_BASE_URL}
227
+ loginRealm : ${KEYCLOAK_LOGIN_REALM}
228
+ realm : ${KEYCLOAK_REALM}
229
+ clientId : ${KEYCLOAK_CLIENT_ID}
230
+ clientSecret : ${KEYCLOAK_CLIENT_SECRET}
231
+
232
+ # Plugin: OCM
233
+ ocm :
234
+ default :
235
+ name : ${OCM_HUB_NAME}
236
+ url : ${OCM_HUB_URL}
237
+ serviceAccountToken : ${moc_infra_token}
238
+ owner : janus-authors
239
+
240
+ # Plugin: GitHub Org Data
241
+ githubOrg :
242
+ default :
243
+ id : production
244
+ orgUrl : ${GITHUB_ORG_URL}
245
+
246
+ # Plugin: GitHub Discovery
247
+ # uncomment following lines and set GITHUB_ORG to enable GitHub Discovery
248
+ # github:
249
+ # providerId:
250
+ # organization: "${GITHUB_ORG}"
251
+
252
+ # Plugin: AAP backend plugin
253
+ aap :
254
+ prod :
255
+ baseUrl : ${AAP_BASE_URL}
256
+ authorization : ${AAP_AUTH_TOKEN}
257
+
258
+ # Plugin: Kubernetes, OCM
259
+ kubernetes :
260
+ customResources :
261
+ - group : ' tekton.dev'
262
+ apiVersion : ' v1beta1'
263
+ plural : ' pipelines'
264
+ - group : ' tekton.dev'
265
+ apiVersion : ' v1beta1'
266
+ plural : ' pipelineruns'
267
+ - group : ' tekton.dev'
268
+ apiVersion : ' v1beta1'
269
+ plural : ' taskruns'
270
+ - group : ' route.openshift.io'
271
+ apiVersion : ' v1'
272
+ plural : ' routes'
273
+ serviceLocatorMethod :
274
+ type : ' multiTenant'
275
+ clusterLocatorMethods :
276
+ - type : ' config'
277
+ clusters :
278
+ - name : ${K8S_CLUSTER_NAME}
279
+ url : ${K8S_CLUSTER_URL}
280
+ authProvider : ' serviceAccount'
281
+ skipTLSVerify : true
282
+ serviceAccountToken : ${K8S_CLUSTER_TOKEN}
283
+
284
+ # Plugin: ArgoCD
285
+ argocd :
286
+ username : ${ARGOCD_USERNAME}
287
+ password : ${ARGOCD_PASSWORD}
288
+ appLocatorMethods :
289
+ - type : ' config'
290
+ instances :
291
+ - name : argoInstance1
292
+ url : ${ARGOCD_INSTANCE1_URL}
293
+ token : ${ARGOCD_AUTH_TOKEN}
294
+ - name : argoInstance2
295
+ url : ${ARGOCD_INSTANCE2_URL}
296
+ token : ${ARGOCD_AUTH_TOKEN2}
297
+
298
+ # Plugin: SonarQube
299
+ sonarqube :
300
+ baseUrl : ${SONARQUBE_URL}
301
+ apiKey : ${SONARQUBE_TOKEN}
302
+
303
+ # Plugin: Jenkins
304
+ jenkins :
305
+ instances :
306
+ - name : default
307
+ baseUrl : ${JENKINS_URL}
308
+ username : ${JENKINS_USERNAME}
309
+ apiKey : ${JENKINS_TOKEN}
310
+
311
+ # Plugin: PagerDuty
312
+ pagerduty :
313
+ # uncomment the following, and provide a URL to override the default URL used for events
314
+ # eventsBaseUrl: <PagerDuty Event URL>
315
+
316
+ # Plugin: Lighthouse
317
+ lighthouse :
318
+ baseUrl : ${LIGHTHOUSE_BASEURL}
319
+
320
+ # Plugin: Dynatrace
321
+ dynatrace :
322
+ baseUrl : ${DYNATRACE_URL}
323
+
324
+ # Plugin: Permission
325
+ permission :
326
+ enabled : ${PERMISSION_ENABLED}
327
+
328
+ enabled :
329
+ kubernetes : ${K8S_ENABLED}
330
+ techdocs : ${TECHDOCS_ENABLED}
331
+ argocd : ${ARGOCD_ENABLED}
332
+ sonarqube : ${SONARQUBE_ENABLED}
333
+ keycloak : ${KEYCLOAK_ENABLED}
334
+ ocm : ${OCM_ENABLED}
335
+ github : ${GITHUB_ENABLED}
336
+ githubOrg : ${GITHUB_ORG_ENABLED}
337
+ gitlab : ${GITLAB_ENABLED}
338
+ azureDevOps : ${AZURE_ENABLED}
339
+ jenkins : ${JENKINS_ENABLED}
340
+ permission : ${PERMISSION_ENABLED}
341
+ metrics : ${METRICS_ENABLED}
342
+ aap : ${AAP_ENABLED}
343
+
344
+ dynamicPlugins :
345
+ rootDirectory : dynamic-plugins-root
346
+ frontend : {}
0 commit comments