@techdocs/cli 1.9.2 → 1.9.3-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (23) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/embedded-app/.config-schema.json +1028 -1945
  3. package/dist/embedded-app/index.html +1 -1
  4. package/dist/embedded-app/index.html.tmpl +1 -1
  5. package/dist/embedded-app/static/{2177.84bbb70f.chunk.js → 2177.a6feec05.chunk.js} +1 -1
  6. package/dist/embedded-app/static/{2177.84bbb70f.chunk.js.map → 2177.a6feec05.chunk.js.map} +1 -1
  7. package/dist/embedded-app/static/3308.32b2351d.chunk.js +7 -0
  8. package/dist/embedded-app/static/3308.32b2351d.chunk.js.map +1 -0
  9. package/dist/embedded-app/static/{5470.f80a9c12.chunk.js → 5470.1de8dd3a.chunk.js} +1 -1
  10. package/dist/embedded-app/static/5470.1de8dd3a.chunk.js.map +1 -0
  11. package/dist/embedded-app/static/main.b4847379.js +553 -0
  12. package/dist/embedded-app/static/main.b4847379.js.map +1 -0
  13. package/dist/embedded-app/static/{runtime.9fff8ae5.js → runtime.b4847379.js} +2 -2
  14. package/dist/embedded-app/static/{runtime.9fff8ae5.js.map → runtime.b4847379.js.map} +1 -1
  15. package/dist/embedded-app/static/{vendor.9fff8ae5.js → vendor.b4847379.js} +1 -1
  16. package/dist/embedded-app/static/{vendor.9fff8ae5.js.map → vendor.b4847379.js.map} +1 -1
  17. package/dist/package.json.cjs.js +1 -1
  18. package/package.json +7 -7
  19. package/dist/embedded-app/static/3308.13263a7d.chunk.js +0 -7
  20. package/dist/embedded-app/static/3308.13263a7d.chunk.js.map +0 -1
  21. package/dist/embedded-app/static/5470.f80a9c12.chunk.js.map +0 -1
  22. package/dist/embedded-app/static/main.9fff8ae5.js +0 -553
  23. package/dist/embedded-app/static/main.9fff8ae5.js.map +0 -1
@@ -355,50 +355,60 @@
355
355
  "packageName": "@backstage/core-app-api"
356
356
  },
357
357
  {
358
- "path": "../core-components/config.d.ts",
358
+ "path": "../../plugins/techdocs/config.d.ts",
359
359
  "value": {
360
360
  "type": "object",
361
361
  "properties": {
362
- "auth": {
362
+ "techdocs": {
363
+ "description": "Configuration options for the techdocs plugin",
363
364
  "type": "object",
364
365
  "properties": {
365
- "autologout": {
366
- "description": "Autologout feature configuration",
366
+ "builder": {
367
+ "description": "Documentation building process depends on the builder attr",
368
+ "visibility": "frontend",
369
+ "enum": [
370
+ "external",
371
+ "local"
372
+ ],
373
+ "type": "string"
374
+ },
375
+ "legacyUseCaseSensitiveTripletPaths": {
376
+ "description": "Allows fallback to case-sensitive triplets in case of migration issues.",
377
+ "visibility": "frontend",
378
+ "type": "boolean"
379
+ },
380
+ "sanitizer": {
367
381
  "type": "object",
368
382
  "properties": {
369
- "enabled": {
370
- "description": "Enable or disable the autologout feature",
371
- "visibility": "frontend",
372
- "type": "boolean"
373
- },
374
- "idleTimeoutMinutes": {
375
- "description": "Number of minutes after which the inactive user is logged out automatically.\nDefault is 60 minutes (1 hour)",
376
- "visibility": "frontend",
377
- "type": "number"
378
- },
379
- "promptBeforeIdleSeconds": {
380
- "description": "Number of seconds before the idle timeout where the user will be asked if it's still active.\nA dialog will be shown.\nDefault is 10 seconds.\nSet to 0 seconds to disable the prompt.",
383
+ "allowedIframeHosts": {
384
+ "description": "Allows iframe tag only for listed hosts\nExample:\n allowedIframeHosts: [\"example.com\"]\n this will allow all iframes with the host `example.com` in the src attribute",
381
385
  "visibility": "frontend",
382
- "type": "number"
386
+ "type": "array",
387
+ "items": {
388
+ "type": "string"
389
+ }
383
390
  },
384
- "useWorkerTimers": {
385
- "description": "Enable/disable the usage of worker thread timers instead of main thread timers.\nDefault is true.\nIf you experience some browser incompatibility, you may try to set this to false.",
391
+ "allowedCustomElementTagNameRegExp": {
392
+ "description": "Allows listed custom element tag name regex\nExample:\n allowedCustomElementTagNameRegExp: '^backstage-'\n this will allow all custom elements with tag name matching `^backstage-` like <backstage-custom-element /> etc.",
386
393
  "visibility": "frontend",
387
- "type": "boolean"
394
+ "type": "string"
388
395
  },
389
- "logoutIfDisconnected": {
390
- "description": "Enable/disable the automatic logout also on users that are logged in but with no Backstage tabs open.\nDefault is true.",
396
+ "allowedCustomElementAttributeNameRegExp": {
397
+ "description": "Allows listed custom element attribute name regex\nExample:\n allowedCustomElementAttributeNameRegExp: 'attribute1|attribute2'\n this will allow all custom element attributes matching `attribute1` or `attribute2` like <backstage-custom-element attribute1=\"yes\" attribute2/>",
391
398
  "visibility": "frontend",
392
- "type": "boolean"
399
+ "type": "string"
393
400
  }
394
401
  }
395
402
  }
396
403
  }
397
404
  }
398
405
  },
406
+ "required": [
407
+ "techdocs"
408
+ ],
399
409
  "$schema": "http://json-schema.org/draft-07/schema#"
400
410
  },
401
- "packageName": "@backstage/core-components"
411
+ "packageName": "@backstage/plugin-techdocs"
402
412
  },
403
413
  {
404
414
  "path": "../integration/config.d.ts",
@@ -448,12 +458,18 @@
448
458
  }
449
459
  },
450
460
  "credentials": {
451
- "description": "The credentials to use for requests. If multiple credentials are specified the first one that matches the organization is used.\nIf not organization matches the first credential without an organization is used.\n\nIf no credentials are specified at all, either a default credential (for Azure DevOps) or anonymous access (for Azure DevOps Server) is used.",
461
+ "description": "The credentials to use for requests. If multiple credentials are specified the first one that matches the organization is used.\nIf no organization matches the first credential without an organization is used.\n\nIf no credentials are specified at all, either a default credential (for Azure DevOps) or anonymous access (for Azure DevOps Server) is used.",
452
462
  "deepVisibility": "secret",
453
463
  "type": "array",
454
464
  "items": {
455
465
  "type": "object",
456
466
  "properties": {
467
+ "organizations": {
468
+ "type": "array",
469
+ "items": {
470
+ "type": "string"
471
+ }
472
+ },
457
473
  "clientId": {
458
474
  "type": "string"
459
475
  },
@@ -880,62 +896,6 @@
880
896
  },
881
897
  "packageName": "@backstage/integration"
882
898
  },
883
- {
884
- "path": "../../plugins/techdocs/config.d.ts",
885
- "value": {
886
- "type": "object",
887
- "properties": {
888
- "techdocs": {
889
- "description": "Configuration options for the techdocs plugin",
890
- "type": "object",
891
- "properties": {
892
- "builder": {
893
- "description": "Documentation building process depends on the builder attr",
894
- "visibility": "frontend",
895
- "enum": [
896
- "external",
897
- "local"
898
- ],
899
- "type": "string"
900
- },
901
- "legacyUseCaseSensitiveTripletPaths": {
902
- "description": "Allows fallback to case-sensitive triplets in case of migration issues.",
903
- "visibility": "frontend",
904
- "type": "boolean"
905
- },
906
- "sanitizer": {
907
- "type": "object",
908
- "properties": {
909
- "allowedIframeHosts": {
910
- "description": "Allows iframe tag only for listed hosts\nExample:\n allowedIframeHosts: [\"example.com\"]\n this will allow all iframes with the host `example.com` in the src attribute",
911
- "visibility": "frontend",
912
- "type": "array",
913
- "items": {
914
- "type": "string"
915
- }
916
- },
917
- "allowedCustomElementTagNameRegExp": {
918
- "description": "Allows listed custom element tag name regex\nExample:\n allowedCustomElementTagNameRegExp: '^backstage-'\n this will allow all custom elements with tag name matching `^backstage-` like <backstage-custom-element /> etc.",
919
- "visibility": "frontend",
920
- "type": "string"
921
- },
922
- "allowedCustomElementAttributeNameRegExp": {
923
- "description": "Allows listed custom element attribute name regex\nExample:\n allowedCustomElementAttributeNameRegExp: 'attribute1|attribute2'\n this will allow all custom element attributes matching `attribute1` or `attribute2` like <backstage-custom-element attribute1=\"yes\" attribute2/>",
924
- "visibility": "frontend",
925
- "type": "string"
926
- }
927
- }
928
- }
929
- }
930
- }
931
- },
932
- "required": [
933
- "techdocs"
934
- ],
935
- "$schema": "http://json-schema.org/draft-07/schema#"
936
- },
937
- "packageName": "@backstage/plugin-techdocs"
938
- },
939
899
  {
940
900
  "path": "../frontend-app-api/config.d.ts",
941
901
  "value": {
@@ -1080,6 +1040,52 @@
1080
1040
  },
1081
1041
  "packageName": "@backstage/plugin-catalog"
1082
1042
  },
1043
+ {
1044
+ "path": "../core-components/config.d.ts",
1045
+ "value": {
1046
+ "type": "object",
1047
+ "properties": {
1048
+ "auth": {
1049
+ "type": "object",
1050
+ "properties": {
1051
+ "autologout": {
1052
+ "description": "Autologout feature configuration",
1053
+ "type": "object",
1054
+ "properties": {
1055
+ "enabled": {
1056
+ "description": "Enable or disable the autologout feature",
1057
+ "visibility": "frontend",
1058
+ "type": "boolean"
1059
+ },
1060
+ "idleTimeoutMinutes": {
1061
+ "description": "Number of minutes after which the inactive user is logged out automatically.\nDefault is 60 minutes (1 hour)",
1062
+ "visibility": "frontend",
1063
+ "type": "number"
1064
+ },
1065
+ "promptBeforeIdleSeconds": {
1066
+ "description": "Number of seconds before the idle timeout where the user will be asked if it's still active.\nA dialog will be shown.\nDefault is 10 seconds.\nSet to 0 seconds to disable the prompt.",
1067
+ "visibility": "frontend",
1068
+ "type": "number"
1069
+ },
1070
+ "useWorkerTimers": {
1071
+ "description": "Enable/disable the usage of worker thread timers instead of main thread timers.\nDefault is true.\nIf you experience some browser incompatibility, you may try to set this to false.",
1072
+ "visibility": "frontend",
1073
+ "type": "boolean"
1074
+ },
1075
+ "logoutIfDisconnected": {
1076
+ "description": "Enable/disable the automatic logout also on users that are logged in but with no Backstage tabs open.\nDefault is true.",
1077
+ "visibility": "frontend",
1078
+ "type": "boolean"
1079
+ }
1080
+ }
1081
+ }
1082
+ }
1083
+ }
1084
+ },
1085
+ "$schema": "http://json-schema.org/draft-07/schema#"
1086
+ },
1087
+ "packageName": "@backstage/core-components"
1088
+ },
1083
1089
  {
1084
1090
  "path": "../../node_modules/@backstage-community/plugin-stackstorm/config.d.ts",
1085
1091
  "value": {
@@ -1280,181 +1286,54 @@
1280
1286
  }
1281
1287
  }
1282
1288
  },
1289
+ "backstageTokenExpiration": {
1290
+ "description": "The backstage token expiration."
1291
+ },
1292
+ "experimentalExtraAllowedOrigins": {
1293
+ "description": "Additional app origins to allow for authenticating",
1294
+ "type": "array",
1295
+ "items": {
1296
+ "type": "string"
1297
+ }
1298
+ }
1299
+ }
1300
+ }
1301
+ },
1302
+ "$schema": "http://json-schema.org/draft-07/schema#"
1303
+ },
1304
+ "packageName": "@backstage/plugin-auth-backend"
1305
+ },
1306
+ {
1307
+ "path": "../../plugins/auth-backend-module-guest-provider/config.d.ts",
1308
+ "value": {
1309
+ "type": "object",
1310
+ "properties": {
1311
+ "auth": {
1312
+ "description": "Configuration options for the auth plugin",
1313
+ "type": "object",
1314
+ "properties": {
1283
1315
  "providers": {
1284
- "description": "The available auth-provider options and attributes",
1285
- "additionalProperties": true,
1286
1316
  "type": "object",
1287
1317
  "properties": {
1288
- "saml": {
1289
- "visibility": "frontend",
1318
+ "guest": {
1290
1319
  "type": "object",
1291
1320
  "properties": {
1292
- "entryPoint": {
1293
- "type": "string"
1294
- },
1295
- "logoutUrl": {
1296
- "type": "string"
1297
- },
1298
- "issuer": {
1299
- "type": "string"
1300
- },
1301
- "cert": {
1302
- "visibility": "secret",
1303
- "type": "string"
1304
- },
1305
- "audience": {
1306
- "type": "string"
1307
- },
1308
- "privateKey": {
1309
- "visibility": "secret",
1321
+ "userEntityRef": {
1322
+ "description": "The entity reference to use for the guest user.",
1323
+ "default": "user:development/guest",
1310
1324
  "type": "string"
1311
1325
  },
1312
- "authnContext": {
1326
+ "ownershipEntityRefs": {
1327
+ "description": "A list of entity references to user for ownership of the guest user if the user\n is not found in the catalog.",
1328
+ "default": "[userEntityRef]",
1313
1329
  "type": "array",
1314
1330
  "items": {
1315
1331
  "type": "string"
1316
1332
  }
1317
1333
  },
1318
- "identifierFormat": {
1319
- "type": "string"
1320
- },
1321
- "decryptionPvk": {
1322
- "visibility": "secret",
1323
- "type": "string"
1324
- },
1325
- "signatureAlgorithm": {
1326
- "enum": [
1327
- "sha256",
1328
- "sha512"
1329
- ],
1330
- "type": "string"
1331
- },
1332
- "digestAlgorithm": {
1333
- "type": "string"
1334
- },
1335
- "acceptedClockSkewMs": {
1336
- "type": "number"
1337
- }
1338
- },
1339
- "required": [
1340
- "cert",
1341
- "entryPoint",
1342
- "issuer"
1343
- ]
1344
- },
1345
- "auth0": {
1346
- "visibility": "frontend",
1347
- "type": "object",
1348
- "additionalProperties": {
1349
- "type": "object",
1350
- "properties": {
1351
- "clientId": {
1352
- "type": "string"
1353
- },
1354
- "clientSecret": {
1355
- "visibility": "secret",
1356
- "type": "string"
1357
- },
1358
- "domain": {
1359
- "type": "string"
1360
- },
1361
- "callbackUrl": {
1362
- "type": "string"
1363
- },
1364
- "audience": {
1365
- "type": "string"
1366
- },
1367
- "connection": {
1368
- "type": "string"
1369
- },
1370
- "connectionScope": {
1371
- "type": "string"
1372
- }
1373
- },
1374
- "required": [
1375
- "clientId",
1376
- "clientSecret",
1377
- "domain"
1378
- ]
1379
- }
1380
- },
1381
- "onelogin": {
1382
- "visibility": "frontend",
1383
- "type": "object",
1384
- "additionalProperties": {
1385
- "type": "object",
1386
- "properties": {
1387
- "clientId": {
1388
- "type": "string"
1389
- },
1390
- "clientSecret": {
1391
- "visibility": "secret",
1392
- "type": "string"
1393
- },
1394
- "issuer": {
1395
- "type": "string"
1396
- },
1397
- "callbackUrl": {
1398
- "type": "string"
1399
- }
1400
- },
1401
- "required": [
1402
- "clientId",
1403
- "clientSecret",
1404
- "issuer"
1405
- ]
1406
- }
1407
- }
1408
- }
1409
- },
1410
- "backstageTokenExpiration": {
1411
- "description": "The backstage token expiration."
1412
- },
1413
- "experimentalExtraAllowedOrigins": {
1414
- "description": "Additional app origins to allow for authenticating",
1415
- "type": "array",
1416
- "items": {
1417
- "type": "string"
1418
- }
1419
- }
1420
- }
1421
- }
1422
- },
1423
- "$schema": "http://json-schema.org/draft-07/schema#"
1424
- },
1425
- "packageName": "@backstage/plugin-auth-backend"
1426
- },
1427
- {
1428
- "path": "../../plugins/auth-backend-module-guest-provider/config.d.ts",
1429
- "value": {
1430
- "type": "object",
1431
- "properties": {
1432
- "auth": {
1433
- "description": "Configuration options for the auth plugin",
1434
- "type": "object",
1435
- "properties": {
1436
- "providers": {
1437
- "type": "object",
1438
- "properties": {
1439
- "guest": {
1440
- "type": "object",
1441
- "properties": {
1442
- "userEntityRef": {
1443
- "description": "The entity reference to use for the guest user.",
1444
- "default": "user:development/guest",
1445
- "type": "string"
1446
- },
1447
- "ownershipEntityRefs": {
1448
- "description": "A list of entity references to user for ownership of the guest user if the user\n is not found in the catalog.",
1449
- "default": "[userEntityRef]",
1450
- "type": "array",
1451
- "items": {
1452
- "type": "string"
1453
- }
1454
- },
1455
- "dangerouslyAllowOutsideDevelopment": {
1456
- "description": "Allow users to sign in with the guest provider outside of their development environments.",
1457
- "type": "boolean"
1334
+ "dangerouslyAllowOutsideDevelopment": {
1335
+ "description": "Allow users to sign in with the guest provider outside of their development environments.",
1336
+ "type": "boolean"
1458
1337
  }
1459
1338
  }
1460
1339
  }
@@ -1471,7 +1350,7 @@
1471
1350
  "packageName": "@backstage/plugin-auth-backend-module-guest-provider"
1472
1351
  },
1473
1352
  {
1474
- "path": "../../node_modules/@backstage-community/plugin-puppetdb/node_modules/@backstage/core-components/config.d.ts",
1353
+ "path": "../../node_modules/@backstage-community/plugin-stackstorm/node_modules/@backstage/core-components/config.d.ts",
1475
1354
  "value": {
1476
1355
  "type": "object",
1477
1356
  "properties": {
@@ -1563,253 +1442,733 @@
1563
1442
  "packageName": "@backstage/core-components"
1564
1443
  },
1565
1444
  {
1566
- "path": "../backend-app-api/config.d.ts",
1445
+ "path": "../../node_modules/@oriflame/backstage-plugin-score-card/node_modules/@backstage/integration/config.d.ts",
1567
1446
  "value": {
1568
1447
  "type": "object",
1569
1448
  "properties": {
1570
- "backend": {
1449
+ "integrations": {
1450
+ "description": "Configuration for integrations towards various external repository provider systems",
1451
+ "visibility": "frontend",
1571
1452
  "type": "object",
1572
1453
  "properties": {
1573
- "packages": {
1574
- "description": "Used by the feature discovery service",
1575
- "anyOf": [
1576
- {
1577
- "type": "object",
1578
- "properties": {
1579
- "include": {
1580
- "type": "array",
1581
- "items": {
1454
+ "azure": {
1455
+ "description": "Integration configuration for Azure",
1456
+ "type": "array",
1457
+ "items": {
1458
+ "type": "object",
1459
+ "properties": {
1460
+ "host": {
1461
+ "description": "The hostname of the given Azure instance",
1462
+ "visibility": "frontend",
1463
+ "type": "string"
1464
+ },
1465
+ "token": {
1466
+ "description": "Token used to authenticate requests.",
1467
+ "visibility": "secret",
1468
+ "deprecated": "Use `credentials` instead.",
1469
+ "type": "string"
1470
+ },
1471
+ "credential": {
1472
+ "description": "The credential to use for requests.\n\nIf no credential is specified anonymous access is used.",
1473
+ "deepVisibility": "secret",
1474
+ "deprecated": "Use `credentials` instead.",
1475
+ "type": "object",
1476
+ "properties": {
1477
+ "clientId": {
1582
1478
  "type": "string"
1583
- }
1584
- },
1585
- "exclude": {
1586
- "type": "array",
1587
- "items": {
1479
+ },
1480
+ "clientSecret": {
1481
+ "type": "string"
1482
+ },
1483
+ "tenantId": {
1484
+ "type": "string"
1485
+ },
1486
+ "personalAccessToken": {
1588
1487
  "type": "string"
1589
1488
  }
1590
1489
  }
1591
- }
1592
- },
1593
- {
1594
- "const": "all",
1595
- "type": "string"
1596
- }
1597
- ]
1598
- },
1599
- "startup": {
1600
- "type": "object",
1601
- "properties": {
1602
- "default": {
1603
- "type": "object",
1604
- "properties": {
1605
- "onPluginBootFailure": {
1606
- "description": "The default value for `onPluginBootFailure` if not specified for a particular plugin.\nThis defaults to 'abort', which means `onPluginBootFailure: continue` must be specified\nfor backend startup to continue on plugin boot failure. This can also be set to\n'continue', which flips the logic for individual plugins so that they must be set to\n`onPluginBootFailure: abort` to be required.",
1607
- "enum": [
1608
- "abort",
1609
- "continue"
1610
- ],
1611
- "type": "string"
1612
- }
1613
- }
1614
- },
1615
- "plugins": {
1616
- "type": "object",
1617
- "additionalProperties": {
1618
- "type": "object",
1619
- "properties": {
1620
- "onPluginBootFailure": {
1621
- "description": "Used to control backend startup behavior when this plugin fails to boot up. Setting\nthis to `continue` allows the backend to continue starting up, even if this plugin\nfails. This can enable leaving a crashing plugin installed, but still permit backend\nstartup, which may help troubleshoot data-dependent issues. Plugin failures for plugins\nset to `abort` are fatal (this is the default unless overridden by the `default`\nsetting).",
1622
- "enum": [
1623
- "abort",
1624
- "continue"
1625
- ],
1626
- "type": "string"
1490
+ },
1491
+ "credentials": {
1492
+ "description": "The credentials to use for requests. If multiple credentials are specified the first one that matches the organization is used.\nIf not organization matches the first credential without an organization is used.\n\nIf no credentials are specified at all, either a default credential (for Azure DevOps) or anonymous access (for Azure DevOps Server) is used.",
1493
+ "deepVisibility": "secret",
1494
+ "type": "array",
1495
+ "items": {
1496
+ "type": "object",
1497
+ "properties": {
1498
+ "clientId": {
1499
+ "type": "string"
1500
+ },
1501
+ "clientSecret": {
1502
+ "type": "string"
1503
+ },
1504
+ "tenantId": {
1505
+ "type": "string"
1506
+ },
1507
+ "personalAccessToken": {
1508
+ "type": "string"
1509
+ }
1627
1510
  }
1628
1511
  }
1512
+ },
1513
+ "commitSigningKey": {
1514
+ "description": "PGP signing key for signing commits.",
1515
+ "visibility": "secret",
1516
+ "type": "string"
1629
1517
  }
1630
- }
1631
- }
1632
- }
1633
- }
1634
- }
1635
- },
1636
- "$schema": "http://json-schema.org/draft-07/schema#"
1637
- },
1638
- "packageName": "@backstage/backend-app-api"
1639
- },
1640
- {
1641
- "path": "../backend-defaults/config.d.ts",
1642
- "value": {
1643
- "type": "object",
1644
- "properties": {
1645
- "app": {
1646
- "type": "object",
1647
- "properties": {
1648
- "baseUrl": {
1649
- "type": "string"
1650
- }
1651
- },
1652
- "required": [
1653
- "baseUrl"
1654
- ]
1655
- },
1656
- "backend": {
1657
- "type": "object",
1658
- "properties": {
1659
- "baseUrl": {
1660
- "description": "The full base URL of the backend, as seen from the browser's point of\nview as it makes calls to the backend.",
1661
- "type": "string"
1662
- },
1663
- "lifecycle": {
1664
- "type": "object",
1665
- "properties": {
1666
- "startupRequestPauseTimeout": {
1667
- "description": "The maximum time that paused requests will wait for the service to start, before returning an error.\nDefaults to 5 seconds\nSupported formats:\n- A string in the format of '1d', '2 seconds' etc. as supported by the `ms`\n library.\n- A standard ISO formatted duration string, e.g. 'P2DT6H' or 'PT1M'.\n- An object with individual units (in plural) as keys, e.g. `{ days: 2, hours: 6 }`."
1668
1518
  },
1669
- "serverShutdownDelay": {
1670
- "description": "The minimum time that the HTTP server will delay the shutdown of the backend. During this delay health checks will be set to failing, allowing traffic to drain.\nDefaults to 0 seconds.\nSupported formats:\n- A string in the format of '1d', '2 seconds' etc. as supported by the `ms`\n library.\n- A standard ISO formatted duration string, e.g. 'P2DT6H' or 'PT1M'.\n- An object with individual units (in plural) as keys, e.g. `{ days: 2, hours: 6 }`."
1671
- }
1519
+ "required": [
1520
+ "host"
1521
+ ]
1672
1522
  }
1673
1523
  },
1674
- "trustProxy": {
1675
- "description": "Corresponds to the Express `trust proxy` setting.",
1676
- "anyOf": [
1677
- {
1678
- "type": "array",
1679
- "items": {
1524
+ "bitbucket": {
1525
+ "description": "Integration configuration for Bitbucket",
1526
+ "deprecated": "replaced by bitbucketCloud and bitbucketServer",
1527
+ "type": "array",
1528
+ "items": {
1529
+ "type": "object",
1530
+ "properties": {
1531
+ "host": {
1532
+ "description": "The hostname of the given Bitbucket instance",
1533
+ "visibility": "frontend",
1680
1534
  "type": "string"
1681
- }
1682
- },
1683
- {
1684
- "type": [
1685
- "string",
1686
- "number",
1687
- "boolean"
1688
- ]
1689
- }
1690
- ]
1535
+ },
1536
+ "token": {
1537
+ "description": "Token used to authenticate requests.",
1538
+ "visibility": "secret",
1539
+ "type": "string"
1540
+ },
1541
+ "apiBaseUrl": {
1542
+ "description": "The base url for the Bitbucket API, for example https://api.bitbucket.org/2.0",
1543
+ "visibility": "frontend",
1544
+ "type": "string"
1545
+ },
1546
+ "username": {
1547
+ "description": "The username to use for authenticated requests.",
1548
+ "visibility": "secret",
1549
+ "type": "string"
1550
+ },
1551
+ "appPassword": {
1552
+ "description": "Bitbucket app password used to authenticate requests.",
1553
+ "visibility": "secret",
1554
+ "type": "string"
1555
+ },
1556
+ "commitSigningKey": {
1557
+ "description": "PGP signing key for signing commits.",
1558
+ "visibility": "secret",
1559
+ "type": "string"
1560
+ }
1561
+ },
1562
+ "required": [
1563
+ "host"
1564
+ ]
1565
+ }
1691
1566
  },
1692
- "listen": {
1693
- "description": "Address that the backend should listen to.",
1694
- "anyOf": [
1695
- {
1696
- "type": "object",
1697
- "properties": {
1698
- "host": {
1699
- "description": "Address of the interface that the backend should bind to.",
1700
- "type": "string"
1701
- },
1702
- "port": {
1703
- "description": "Port that the backend should listen to.",
1704
- "type": [
1705
- "string",
1706
- "number"
1707
- ]
1708
- }
1567
+ "bitbucketCloud": {
1568
+ "description": "Integration configuration for Bitbucket Cloud",
1569
+ "type": "array",
1570
+ "items": {
1571
+ "type": "object",
1572
+ "properties": {
1573
+ "username": {
1574
+ "description": "The username to use for authenticated requests.",
1575
+ "visibility": "secret",
1576
+ "type": "string"
1577
+ },
1578
+ "appPassword": {
1579
+ "description": "Bitbucket Cloud app password used to authenticate requests.",
1580
+ "visibility": "secret",
1581
+ "type": "string"
1582
+ },
1583
+ "commitSigningKey": {
1584
+ "description": "PGP signing key for signing commits.",
1585
+ "visibility": "secret",
1586
+ "type": "string"
1709
1587
  }
1710
1588
  },
1711
- {
1712
- "type": "string"
1713
- }
1714
- ]
1589
+ "required": [
1590
+ "appPassword",
1591
+ "username"
1592
+ ]
1593
+ }
1715
1594
  },
1716
- "https": {
1717
- "description": "HTTPS configuration for the backend. If omitted the backend will serve HTTP.\n\nSetting this to `true` will cause self-signed certificates to be generated, which\ncan be useful for local development or other non-production scenarios.",
1718
- "anyOf": [
1719
- {
1720
- "type": "object",
1721
- "properties": {
1722
- "certificate": {
1723
- "description": "Certificate configuration",
1595
+ "bitbucketServer": {
1596
+ "description": "Integration configuration for Bitbucket Server",
1597
+ "type": "array",
1598
+ "items": {
1599
+ "type": "object",
1600
+ "properties": {
1601
+ "host": {
1602
+ "description": "The hostname of the given Bitbucket Server instance",
1603
+ "visibility": "frontend",
1604
+ "type": "string"
1605
+ },
1606
+ "token": {
1607
+ "description": "Token used to authenticate requests.",
1608
+ "visibility": "secret",
1609
+ "type": "string"
1610
+ },
1611
+ "username": {
1612
+ "description": "Username used to authenticate requests with Basic Auth.",
1613
+ "visibility": "secret",
1614
+ "type": "string"
1615
+ },
1616
+ "password": {
1617
+ "description": "Password (or token as password) used to authenticate requests with Basic Auth.",
1618
+ "visibility": "secret",
1619
+ "type": "string"
1620
+ },
1621
+ "apiBaseUrl": {
1622
+ "description": "The base url for the Bitbucket Server API, for example https://<host>/rest/api/1.0",
1623
+ "visibility": "frontend",
1624
+ "type": "string"
1625
+ },
1626
+ "commitSigningKey": {
1627
+ "description": "PGP signing key for signing commits.",
1628
+ "visibility": "secret",
1629
+ "type": "string"
1630
+ }
1631
+ },
1632
+ "required": [
1633
+ "host"
1634
+ ]
1635
+ }
1636
+ },
1637
+ "gerrit": {
1638
+ "description": "Integration configuration for Gerrit",
1639
+ "type": "array",
1640
+ "items": {
1641
+ "type": "object",
1642
+ "properties": {
1643
+ "host": {
1644
+ "description": "The hostname of the given Gerrit instance",
1645
+ "visibility": "frontend",
1646
+ "type": "string"
1647
+ },
1648
+ "baseUrl": {
1649
+ "description": "The base url for the Gerrit instance.",
1650
+ "visibility": "frontend",
1651
+ "type": "string"
1652
+ },
1653
+ "gitilesBaseUrl": {
1654
+ "description": "The gitiles base url.",
1655
+ "visibility": "frontend",
1656
+ "type": "string"
1657
+ },
1658
+ "cloneUrl": {
1659
+ "description": "The base url for cloning repos.",
1660
+ "visibility": "frontend",
1661
+ "type": "string"
1662
+ },
1663
+ "username": {
1664
+ "description": "The username to use for authenticated requests.",
1665
+ "visibility": "secret",
1666
+ "type": "string"
1667
+ },
1668
+ "password": {
1669
+ "description": "Gerrit password used to authenticate requests. This can be either a password\nor a generated access token.",
1670
+ "visibility": "secret",
1671
+ "type": "string"
1672
+ },
1673
+ "commitSigningKey": {
1674
+ "description": "PGP signing key for signing commits.",
1675
+ "visibility": "secret",
1676
+ "type": "string"
1677
+ }
1678
+ },
1679
+ "required": [
1680
+ "gitilesBaseUrl",
1681
+ "host"
1682
+ ]
1683
+ }
1684
+ },
1685
+ "github": {
1686
+ "description": "Integration configuration for GitHub",
1687
+ "type": "array",
1688
+ "items": {
1689
+ "type": "object",
1690
+ "properties": {
1691
+ "host": {
1692
+ "description": "The hostname of the given GitHub instance",
1693
+ "visibility": "frontend",
1694
+ "type": "string"
1695
+ },
1696
+ "token": {
1697
+ "description": "Token used to authenticate requests.",
1698
+ "visibility": "secret",
1699
+ "type": "string"
1700
+ },
1701
+ "apiBaseUrl": {
1702
+ "description": "The base url for the GitHub API, for example https://api.github.com",
1703
+ "visibility": "frontend",
1704
+ "type": "string"
1705
+ },
1706
+ "rawBaseUrl": {
1707
+ "description": "The base url for GitHub raw resources, for example https://raw.githubusercontent.com",
1708
+ "visibility": "frontend",
1709
+ "type": "string"
1710
+ },
1711
+ "apps": {
1712
+ "description": "GitHub Apps configuration",
1713
+ "type": "array",
1714
+ "items": {
1724
1715
  "type": "object",
1725
1716
  "properties": {
1726
- "cert": {
1727
- "description": "PEM encoded certificate. Use $file to load in a file",
1717
+ "appId": {
1718
+ "description": "The numeric GitHub App ID, string for environment variables",
1719
+ "type": [
1720
+ "string",
1721
+ "number"
1722
+ ]
1723
+ },
1724
+ "privateKey": {
1725
+ "description": "The private key to use for auth against the app",
1726
+ "visibility": "secret",
1728
1727
  "type": "string"
1729
1728
  },
1730
- "key": {
1731
- "description": "PEM encoded certificate key. Use $file to load in a file.",
1729
+ "webhookSecret": {
1730
+ "description": "The secret used for webhooks",
1731
+ "visibility": "secret",
1732
+ "type": "string"
1733
+ },
1734
+ "clientId": {
1735
+ "description": "The client ID to use",
1736
+ "type": "string"
1737
+ },
1738
+ "clientSecret": {
1739
+ "description": "The client secret to use",
1732
1740
  "visibility": "secret",
1733
1741
  "type": "string"
1742
+ },
1743
+ "allowedInstallationOwners": {
1744
+ "description": "List of installation owners allowed to be used by this GitHub app. The GitHub UI does not provide a way to list the installations.\nHowever you can list the installations with the GitHub API. You can find the list of installations here:\nhttps://api.github.com/app/installations\nThe relevant documentation for this is here.\nhttps://docs.github.com/en/rest/reference/apps#list-installations-for-the-authenticated-app--code-samples",
1745
+ "type": "array",
1746
+ "items": {
1747
+ "type": "string"
1748
+ }
1734
1749
  }
1735
1750
  },
1736
1751
  "required": [
1737
- "cert",
1738
- "key"
1752
+ "appId",
1753
+ "clientId",
1754
+ "clientSecret",
1755
+ "privateKey"
1739
1756
  ]
1740
1757
  }
1741
1758
  }
1742
1759
  },
1743
- {
1744
- "const": true,
1745
- "type": "boolean"
1746
- }
1747
- ]
1748
- },
1749
- "auditor": {
1750
- "description": "Options used by the default auditor service.",
1760
+ "required": [
1761
+ "host"
1762
+ ]
1763
+ }
1764
+ },
1765
+ "gitlab": {
1766
+ "description": "Integration configuration for GitLab",
1767
+ "type": "array",
1768
+ "items": {
1769
+ "type": "object",
1770
+ "properties": {
1771
+ "host": {
1772
+ "description": "The host of the target that this matches on, e.g. \"gitlab.com\".",
1773
+ "visibility": "frontend",
1774
+ "type": "string"
1775
+ },
1776
+ "apiBaseUrl": {
1777
+ "description": "The base URL of the API of this provider, e.g.\n\"https://gitlab.com/api/v4\", with no trailing slash.\n\nMay be omitted specifically for public GitLab; then it will be deduced.",
1778
+ "visibility": "frontend",
1779
+ "type": "string"
1780
+ },
1781
+ "token": {
1782
+ "description": "The authorization token to use for requests to this provider.\n\nIf no token is specified, anonymous access is used.",
1783
+ "visibility": "secret",
1784
+ "type": "string"
1785
+ },
1786
+ "baseUrl": {
1787
+ "description": "The baseUrl of this provider, e.g. \"https://gitlab.com\", which is\npassed into the GitLab client.\n\nIf no baseUrl is provided, it will default to https://${host}.",
1788
+ "visibility": "frontend",
1789
+ "type": "string"
1790
+ },
1791
+ "commitSigningKey": {
1792
+ "description": "PGP signing key for signing commits.",
1793
+ "visibility": "secret",
1794
+ "type": "string"
1795
+ }
1796
+ },
1797
+ "required": [
1798
+ "host"
1799
+ ]
1800
+ }
1801
+ },
1802
+ "googleGcs": {
1803
+ "description": "Integration configuration for Google Cloud Storage",
1751
1804
  "type": "object",
1752
1805
  "properties": {
1753
- "severityLogLevelMappings": {
1754
- "description": "Defines how audit event severity levels are mapped to log levels.\nThis allows you to control the verbosity of audit logs based on the\nseverity of the event. For example, you might want to log 'low' severity\nevents as 'debug' messages, while logging 'critical' events as 'error'\nmessages. Each severity level ('low', 'medium', 'high', 'critical')\ncan be mapped to one of the standard log levels ('debug', 'info', 'warn', 'error').\n\nBy default, audit events are mapped to log levels as follows:\n- `low`: `debug`\n- `medium`: `info`\n- `high`: `info`\n- `critical`: `info`",
1806
+ "clientEmail": {
1807
+ "description": "Service account email used to authenticate requests.",
1808
+ "type": "string"
1809
+ },
1810
+ "privateKey": {
1811
+ "description": "Service account private key used to authenticate requests.",
1812
+ "visibility": "secret",
1813
+ "type": "string"
1814
+ }
1815
+ }
1816
+ },
1817
+ "awsS3": {
1818
+ "description": "Integration configuration for AWS S3 Service",
1819
+ "type": "array",
1820
+ "items": {
1821
+ "type": "object",
1822
+ "properties": {
1823
+ "endpoint": {
1824
+ "description": "AWS Endpoint.\nThe endpoint URI to send requests to. The default endpoint is built from the configured region.",
1825
+ "visibility": "frontend",
1826
+ "type": "string"
1827
+ },
1828
+ "s3ForcePathStyle": {
1829
+ "description": "Whether to use path style URLs when communicating with S3.\nDefaults to false.\nThis allows providers like LocalStack, Minio and Wasabi (and possibly others) to be used.",
1830
+ "visibility": "frontend",
1831
+ "type": "boolean"
1832
+ },
1833
+ "accessKeyId": {
1834
+ "description": "Account access key used to authenticate requests.",
1835
+ "type": "string"
1836
+ },
1837
+ "secretAccessKey": {
1838
+ "description": "Account secret key used to authenticate requests.",
1839
+ "visibility": "secret",
1840
+ "type": "string"
1841
+ },
1842
+ "roleArn": {
1843
+ "description": "ARN of the role to be assumed",
1844
+ "type": "string"
1845
+ },
1846
+ "externalId": {
1847
+ "description": "External ID to use when assuming role",
1848
+ "type": "string"
1849
+ }
1850
+ }
1851
+ }
1852
+ },
1853
+ "gitea": {
1854
+ "description": "Integration configuration for Gitea",
1855
+ "type": "array",
1856
+ "items": {
1857
+ "type": "object",
1858
+ "properties": {
1859
+ "host": {
1860
+ "description": "The hostname of the given Gitea instance",
1861
+ "visibility": "frontend",
1862
+ "type": "string"
1863
+ },
1864
+ "baseUrl": {
1865
+ "description": "The base url for the Gitea instance.",
1866
+ "visibility": "frontend",
1867
+ "type": "string"
1868
+ },
1869
+ "username": {
1870
+ "description": "The username to use for authenticated requests.",
1871
+ "visibility": "secret",
1872
+ "type": "string"
1873
+ },
1874
+ "password": {
1875
+ "description": "Gitea password used to authenticate requests. This can be either a password\nor a generated access token.",
1876
+ "visibility": "secret",
1877
+ "type": "string"
1878
+ },
1879
+ "commitSigningKey": {
1880
+ "description": "PGP signing key for signing commits.",
1881
+ "visibility": "secret",
1882
+ "type": "string"
1883
+ }
1884
+ },
1885
+ "required": [
1886
+ "host"
1887
+ ]
1888
+ }
1889
+ },
1890
+ "harness": {
1891
+ "description": "Integration configuration for Harness Code",
1892
+ "type": "array",
1893
+ "items": {
1894
+ "type": "object",
1895
+ "properties": {
1896
+ "host": {
1897
+ "description": "The hostname of the given Harness Code instance",
1898
+ "visibility": "frontend",
1899
+ "type": "string"
1900
+ },
1901
+ "apiKey": {
1902
+ "description": "The apikey to use for authenticated requests.",
1903
+ "visibility": "secret",
1904
+ "type": "string"
1905
+ },
1906
+ "token": {
1907
+ "description": "Harness Code token used to authenticate requests. This can be either a generated access token.",
1908
+ "visibility": "secret",
1909
+ "type": "string"
1910
+ }
1911
+ },
1912
+ "required": [
1913
+ "host"
1914
+ ]
1915
+ }
1916
+ }
1917
+ }
1918
+ }
1919
+ },
1920
+ "$schema": "http://json-schema.org/draft-07/schema#"
1921
+ },
1922
+ "packageName": "@backstage/integration"
1923
+ },
1924
+ {
1925
+ "path": "../backend-app-api/config.d.ts",
1926
+ "value": {
1927
+ "type": "object",
1928
+ "properties": {
1929
+ "backend": {
1930
+ "type": "object",
1931
+ "properties": {
1932
+ "packages": {
1933
+ "description": "Used by the feature discovery service",
1934
+ "anyOf": [
1935
+ {
1755
1936
  "type": "object",
1756
1937
  "properties": {
1757
- "low": {
1758
- "enum": [
1759
- "debug",
1760
- "error",
1761
- "info",
1762
- "warn"
1763
- ],
1764
- "type": "string"
1765
- },
1766
- "medium": {
1767
- "enum": [
1768
- "debug",
1769
- "error",
1770
- "info",
1771
- "warn"
1772
- ],
1773
- "type": "string"
1774
- },
1775
- "high": {
1776
- "enum": [
1777
- "debug",
1778
- "error",
1779
- "info",
1780
- "warn"
1781
- ],
1782
- "type": "string"
1938
+ "include": {
1939
+ "type": "array",
1940
+ "items": {
1941
+ "type": "string"
1942
+ }
1783
1943
  },
1784
- "critical": {
1785
- "enum": [
1786
- "debug",
1787
- "error",
1788
- "info",
1789
- "warn"
1790
- ],
1791
- "type": "string"
1944
+ "exclude": {
1945
+ "type": "array",
1946
+ "items": {
1947
+ "type": "string"
1948
+ }
1792
1949
  }
1793
1950
  }
1951
+ },
1952
+ {
1953
+ "const": "all",
1954
+ "type": "string"
1794
1955
  }
1795
- }
1956
+ ]
1796
1957
  },
1797
- "auth": {
1798
- "description": "Options used by the default auth, httpAuth and userInfo services.",
1958
+ "startup": {
1799
1959
  "type": "object",
1800
1960
  "properties": {
1801
- "keys": {
1802
- "description": "Keys shared by all backends for signing and validating backend tokens.",
1803
- "deprecated": "this will be removed when the backwards compatibility is no longer needed with backend-common",
1804
- "type": "array",
1805
- "items": {
1961
+ "default": {
1962
+ "type": "object",
1963
+ "properties": {
1964
+ "onPluginBootFailure": {
1965
+ "description": "The default value for `onPluginBootFailure` if not specified for a particular plugin.\nThis defaults to 'abort', which means `onPluginBootFailure: continue` must be specified\nfor backend startup to continue on plugin boot failure. This can also be set to\n'continue', which flips the logic for individual plugins so that they must be set to\n`onPluginBootFailure: abort` to be required.",
1966
+ "enum": [
1967
+ "abort",
1968
+ "continue"
1969
+ ],
1970
+ "type": "string"
1971
+ }
1972
+ }
1973
+ },
1974
+ "plugins": {
1975
+ "type": "object",
1976
+ "additionalProperties": {
1806
1977
  "type": "object",
1807
1978
  "properties": {
1808
- "secret": {
1809
- "description": "Secret for generating tokens. Should be a base64 string, recommended\nlength is 24 bytes.",
1810
- "visibility": "secret",
1811
- "type": "string"
1812
- }
1979
+ "onPluginBootFailure": {
1980
+ "description": "Used to control backend startup behavior when this plugin fails to boot up. Setting\nthis to `continue` allows the backend to continue starting up, even if this plugin\nfails. This can enable leaving a crashing plugin installed, but still permit backend\nstartup, which may help troubleshoot data-dependent issues. Plugin failures for plugins\nset to `abort` are fatal (this is the default unless overridden by the `default`\nsetting).",
1981
+ "enum": [
1982
+ "abort",
1983
+ "continue"
1984
+ ],
1985
+ "type": "string"
1986
+ }
1987
+ }
1988
+ }
1989
+ }
1990
+ }
1991
+ }
1992
+ }
1993
+ }
1994
+ },
1995
+ "$schema": "http://json-schema.org/draft-07/schema#"
1996
+ },
1997
+ "packageName": "@backstage/backend-app-api"
1998
+ },
1999
+ {
2000
+ "path": "../backend-defaults/config.d.ts",
2001
+ "value": {
2002
+ "type": "object",
2003
+ "properties": {
2004
+ "app": {
2005
+ "type": "object",
2006
+ "properties": {
2007
+ "baseUrl": {
2008
+ "type": "string"
2009
+ }
2010
+ },
2011
+ "required": [
2012
+ "baseUrl"
2013
+ ]
2014
+ },
2015
+ "backend": {
2016
+ "type": "object",
2017
+ "properties": {
2018
+ "baseUrl": {
2019
+ "description": "The full base URL of the backend, as seen from the browser's point of\nview as it makes calls to the backend.",
2020
+ "type": "string"
2021
+ },
2022
+ "lifecycle": {
2023
+ "type": "object",
2024
+ "properties": {
2025
+ "startupRequestPauseTimeout": {
2026
+ "description": "The maximum time that paused requests will wait for the service to start, before returning an error.\nDefaults to 5 seconds\nSupported formats:\n- A string in the format of '1d', '2 seconds' etc. as supported by the `ms`\n library.\n- A standard ISO formatted duration string, e.g. 'P2DT6H' or 'PT1M'.\n- An object with individual units (in plural) as keys, e.g. `{ days: 2, hours: 6 }`."
2027
+ },
2028
+ "serverShutdownDelay": {
2029
+ "description": "The minimum time that the HTTP server will delay the shutdown of the backend. During this delay health checks will be set to failing, allowing traffic to drain.\nDefaults to 0 seconds.\nSupported formats:\n- A string in the format of '1d', '2 seconds' etc. as supported by the `ms`\n library.\n- A standard ISO formatted duration string, e.g. 'P2DT6H' or 'PT1M'.\n- An object with individual units (in plural) as keys, e.g. `{ days: 2, hours: 6 }`."
2030
+ }
2031
+ }
2032
+ },
2033
+ "trustProxy": {
2034
+ "description": "Corresponds to the Express `trust proxy` setting.",
2035
+ "anyOf": [
2036
+ {
2037
+ "type": "array",
2038
+ "items": {
2039
+ "type": "string"
2040
+ }
2041
+ },
2042
+ {
2043
+ "type": [
2044
+ "string",
2045
+ "number",
2046
+ "boolean"
2047
+ ]
2048
+ }
2049
+ ]
2050
+ },
2051
+ "listen": {
2052
+ "description": "Address that the backend should listen to.",
2053
+ "anyOf": [
2054
+ {
2055
+ "type": "object",
2056
+ "properties": {
2057
+ "host": {
2058
+ "description": "Address of the interface that the backend should bind to.",
2059
+ "type": "string"
2060
+ },
2061
+ "port": {
2062
+ "description": "Port that the backend should listen to.",
2063
+ "type": [
2064
+ "string",
2065
+ "number"
2066
+ ]
2067
+ }
2068
+ }
2069
+ },
2070
+ {
2071
+ "type": "string"
2072
+ }
2073
+ ]
2074
+ },
2075
+ "https": {
2076
+ "description": "HTTPS configuration for the backend. If omitted the backend will serve HTTP.\n\nSetting this to `true` will cause self-signed certificates to be generated, which\ncan be useful for local development or other non-production scenarios.",
2077
+ "anyOf": [
2078
+ {
2079
+ "type": "object",
2080
+ "properties": {
2081
+ "certificate": {
2082
+ "description": "Certificate configuration",
2083
+ "type": "object",
2084
+ "properties": {
2085
+ "cert": {
2086
+ "description": "PEM encoded certificate. Use $file to load in a file",
2087
+ "type": "string"
2088
+ },
2089
+ "key": {
2090
+ "description": "PEM encoded certificate key. Use $file to load in a file.",
2091
+ "visibility": "secret",
2092
+ "type": "string"
2093
+ }
2094
+ },
2095
+ "required": [
2096
+ "cert",
2097
+ "key"
2098
+ ]
2099
+ }
2100
+ }
2101
+ },
2102
+ {
2103
+ "const": true,
2104
+ "type": "boolean"
2105
+ }
2106
+ ]
2107
+ },
2108
+ "auditor": {
2109
+ "description": "Options used by the default auditor service.",
2110
+ "type": "object",
2111
+ "properties": {
2112
+ "severityLogLevelMappings": {
2113
+ "description": "Defines how audit event severity levels are mapped to log levels.\nThis allows you to control the verbosity of audit logs based on the\nseverity of the event. For example, you might want to log 'low' severity\nevents as 'debug' messages, while logging 'critical' events as 'error'\nmessages. Each severity level ('low', 'medium', 'high', 'critical')\ncan be mapped to one of the standard log levels ('debug', 'info', 'warn', 'error').\n\nBy default, audit events are mapped to log levels as follows:\n- `low`: `debug`\n- `medium`: `info`\n- `high`: `info`\n- `critical`: `info`",
2114
+ "type": "object",
2115
+ "properties": {
2116
+ "low": {
2117
+ "enum": [
2118
+ "debug",
2119
+ "error",
2120
+ "info",
2121
+ "warn"
2122
+ ],
2123
+ "type": "string"
2124
+ },
2125
+ "medium": {
2126
+ "enum": [
2127
+ "debug",
2128
+ "error",
2129
+ "info",
2130
+ "warn"
2131
+ ],
2132
+ "type": "string"
2133
+ },
2134
+ "high": {
2135
+ "enum": [
2136
+ "debug",
2137
+ "error",
2138
+ "info",
2139
+ "warn"
2140
+ ],
2141
+ "type": "string"
2142
+ },
2143
+ "critical": {
2144
+ "enum": [
2145
+ "debug",
2146
+ "error",
2147
+ "info",
2148
+ "warn"
2149
+ ],
2150
+ "type": "string"
2151
+ }
2152
+ }
2153
+ }
2154
+ }
2155
+ },
2156
+ "auth": {
2157
+ "description": "Options used by the default auth, httpAuth and userInfo services.",
2158
+ "type": "object",
2159
+ "properties": {
2160
+ "keys": {
2161
+ "description": "Keys shared by all backends for signing and validating backend tokens.",
2162
+ "deprecated": "this will be removed when the backwards compatibility is no longer needed with backend-common",
2163
+ "type": "array",
2164
+ "items": {
2165
+ "type": "object",
2166
+ "properties": {
2167
+ "secret": {
2168
+ "description": "Secret for generating tokens. Should be a base64 string, recommended\nlength is 24 bytes.",
2169
+ "visibility": "secret",
2170
+ "type": "string"
2171
+ }
1813
2172
  },
1814
2173
  "required": [
1815
2174
  "secret"
@@ -2557,1550 +2916,170 @@
2557
2916
  "preflightContinue": {
2558
2917
  "type": "boolean"
2559
2918
  },
2560
- "optionsSuccessStatus": {
2561
- "type": "number"
2562
- }
2563
- }
2564
- },
2565
- "csp": {
2566
- "description": "Content Security Policy options.\n\nThe keys are the plain policy ID, e.g. \"upgrade-insecure-requests\". The\nvalues are on the format that the helmet library expects them, as an\narray of strings. There is also the special value false, which means to\nremove the default value that Backstage puts in place for that policy.",
2567
- "type": "object",
2568
- "additionalProperties": {
2569
- "anyOf": [
2570
- {
2571
- "type": "array",
2572
- "items": {
2573
- "type": "string"
2574
- }
2575
- },
2576
- {
2577
- "const": false,
2578
- "type": "boolean"
2579
- }
2580
- ]
2581
- }
2582
- },
2583
- "health": {
2584
- "description": "Options for the health check service and endpoint.",
2585
- "type": "object",
2586
- "properties": {
2587
- "headers": {
2588
- "description": "Additional headers to always include in the health check response.\n\nIt can be a good idea to set a header that uniquely identifies your service\nin a multi-service environment. This ensures that the health check that is\nconfigured for your service is actually hitting your service and not another.\n\nFor example, if using Envoy you can use the `service_name_matcher` configuration\nand set the `x-envoy-upstream-healthchecked-cluster` header to a matching value.",
2589
- "type": "object",
2590
- "additionalProperties": {
2591
- "type": "string"
2592
- }
2593
- }
2594
- }
2595
- },
2596
- "reading": {
2597
- "description": "Configuration related to URL reading, used for example for reading catalog info\nfiles, scaffolder templates, and techdocs content.",
2598
- "type": "object",
2599
- "properties": {
2600
- "allow": {
2601
- "description": "A list of targets to allow outgoing requests to. Users will be able to make\nrequests on behalf of the backend to the targets that are allowed by this list.",
2602
- "type": "array",
2603
- "items": {
2604
- "type": "object",
2605
- "properties": {
2606
- "host": {
2607
- "description": "A host to allow outgoing requests to, being either a full host or\na subdomain wildcard pattern with a leading `*`. For example `example.com`\nand `*.example.com` are valid values, `prod.*.example.com` is not.\nThe host may also contain a port, for example `example.com:8080`.",
2608
- "type": "string"
2609
- },
2610
- "paths": {
2611
- "description": "An optional list of paths. In case they are present only targets matching\nany of them will are allowed. You can use trailing slashes to make sure only\nsubdirectories are allowed, for example `/mydir/` will allow targets with\npaths like `/mydir/a` but will block paths like `/mydir2`.",
2612
- "type": "array",
2613
- "items": {
2614
- "type": "string"
2615
- }
2616
- }
2617
- },
2618
- "required": [
2619
- "host"
2620
- ]
2621
- }
2622
- }
2623
- }
2624
- }
2625
- },
2626
- "required": [
2627
- "baseUrl",
2628
- "database"
2629
- ]
2630
- },
2631
- "discovery": {
2632
- "description": "Options used by the default discovery service.",
2633
- "type": "object",
2634
- "properties": {
2635
- "endpoints": {
2636
- "description": "A list of target base URLs and their associated plugins.",
2637
- "type": "array",
2638
- "items": {
2639
- "type": "object",
2640
- "properties": {
2641
- "target": {
2642
- "description": "The target base URL to use for the given set of plugins. Note that this\nneeds to be a full URL including the protocol and path parts that fully\naddress the root of a plugin's API endpoints.",
2643
- "anyOf": [
2644
- {
2645
- "type": "object",
2646
- "properties": {
2647
- "internal": {
2648
- "type": "string"
2649
- },
2650
- "external": {
2651
- "type": "string"
2652
- }
2653
- }
2654
- },
2655
- {
2656
- "type": "string"
2657
- }
2658
- ]
2659
- },
2660
- "plugins": {
2661
- "description": "Array of plugins which use that target base URL.\n\nThe special value `*` can be used to match all plugins.",
2662
- "type": "array",
2663
- "items": {
2664
- "type": "string"
2665
- }
2666
- }
2667
- },
2668
- "required": [
2669
- "plugins",
2670
- "target"
2671
- ]
2672
- }
2673
- }
2674
- },
2675
- "required": [
2676
- "endpoints"
2677
- ]
2678
- }
2679
- },
2680
- "required": [
2681
- "app"
2682
- ],
2683
- "$schema": "http://json-schema.org/draft-07/schema#"
2684
- },
2685
- "packageName": "@backstage/backend-defaults"
2686
- },
2687
- {
2688
- "path": "../../plugins/events-node/config.d.ts",
2689
- "value": {
2690
- "type": "object",
2691
- "properties": {
2692
- "events": {
2693
- "type": "object",
2694
- "properties": {
2695
- "useEventBus": {
2696
- "description": "Whether to use the event bus API in the events plugin backend to\ndistribute events across multiple instances when publishing and\nsubscribing to events.\n\nThe default is 'auto', which means means that the event bus API will be\nused if it's available, but will be disabled if the events backend\nreturns a 404.\n\nIf set to 'never', the events service will only ever publish events\nlocally to the same instance, while if set to 'always', the event bus API\nwill never be disabled, even if the events backend returns a 404.",
2697
- "enum": [
2698
- "always",
2699
- "auto",
2700
- "never"
2701
- ],
2702
- "type": "string"
2703
- }
2704
- }
2705
- }
2706
- },
2707
- "$schema": "http://json-schema.org/draft-07/schema#"
2708
- },
2709
- "packageName": "@backstage/plugin-events-node"
2710
- },
2711
- {
2712
- "path": "../../plugins/auth-backend-module-atlassian-provider/config.d.ts",
2713
- "value": {
2714
- "type": "object",
2715
- "properties": {
2716
- "auth": {
2717
- "type": "object",
2718
- "properties": {
2719
- "providers": {
2720
- "type": "object",
2721
- "properties": {
2722
- "atlassian": {
2723
- "visibility": "frontend",
2724
- "type": "object",
2725
- "additionalProperties": {
2726
- "type": "object",
2727
- "properties": {
2728
- "clientId": {
2729
- "type": "string"
2730
- },
2731
- "clientSecret": {
2732
- "visibility": "secret",
2733
- "type": "string"
2734
- },
2735
- "audience": {
2736
- "type": "string"
2737
- },
2738
- "callbackUrl": {
2739
- "type": "string"
2740
- },
2741
- "additionalScopes": {
2742
- "anyOf": [
2743
- {
2744
- "type": "array",
2745
- "items": {
2746
- "type": "string"
2747
- }
2748
- },
2749
- {
2750
- "type": "string"
2751
- }
2752
- ]
2753
- },
2754
- "signIn": {
2755
- "type": "object",
2756
- "properties": {
2757
- "resolvers": {
2758
- "type": "array",
2759
- "items": {
2760
- "anyOf": [
2761
- {
2762
- "type": "object",
2763
- "properties": {
2764
- "resolver": {
2765
- "type": "string",
2766
- "const": "usernameMatchingUserEntityName"
2767
- }
2768
- },
2769
- "required": [
2770
- "resolver"
2771
- ]
2772
- },
2773
- {
2774
- "type": "object",
2775
- "properties": {
2776
- "resolver": {
2777
- "type": "string",
2778
- "const": "emailLocalPartMatchingUserEntityName"
2779
- },
2780
- "allowedDomains": {
2781
- "type": "array",
2782
- "items": {
2783
- "type": "string"
2784
- }
2785
- }
2786
- },
2787
- "required": [
2788
- "resolver"
2789
- ]
2790
- },
2791
- {
2792
- "type": "object",
2793
- "properties": {
2794
- "resolver": {
2795
- "type": "string",
2796
- "const": "emailMatchingUserEntityProfileEmail"
2797
- }
2798
- },
2799
- "required": [
2800
- "resolver"
2801
- ]
2802
- }
2803
- ]
2804
- }
2805
- }
2806
- },
2807
- "required": [
2808
- "resolvers"
2809
- ]
2810
- },
2811
- "sessionDuration": {}
2812
- },
2813
- "required": [
2814
- "clientId",
2815
- "clientSecret"
2816
- ]
2817
- }
2818
- }
2819
- }
2820
- }
2821
- }
2822
- }
2823
- },
2824
- "$schema": "http://json-schema.org/draft-07/schema#"
2825
- },
2826
- "packageName": "@backstage/plugin-auth-backend-module-atlassian-provider"
2827
- },
2828
- {
2829
- "path": "../../plugins/auth-backend-module-auth0-provider/config.d.ts",
2830
- "value": {
2831
- "type": "object",
2832
- "properties": {
2833
- "auth": {
2834
- "type": "object",
2835
- "properties": {
2836
- "providers": {
2837
- "type": "object",
2838
- "properties": {
2839
- "auth0": {
2840
- "visibility": "frontend",
2841
- "type": "object",
2842
- "additionalProperties": {
2843
- "type": "object",
2844
- "properties": {
2845
- "clientId": {
2846
- "type": "string"
2847
- },
2848
- "clientSecret": {
2849
- "visibility": "secret",
2850
- "type": "string"
2851
- },
2852
- "domain": {
2853
- "type": "string"
2854
- },
2855
- "callbackUrl": {
2856
- "type": "string"
2857
- },
2858
- "audience": {
2859
- "type": "string"
2860
- },
2861
- "connection": {
2862
- "type": "string"
2863
- },
2864
- "connectionScope": {
2865
- "type": "string"
2866
- },
2867
- "sessionDuration": {}
2868
- },
2869
- "required": [
2870
- "clientId",
2871
- "clientSecret",
2872
- "domain"
2873
- ]
2874
- }
2875
- }
2876
- }
2877
- }
2878
- }
2879
- }
2880
- },
2881
- "$schema": "http://json-schema.org/draft-07/schema#"
2882
- },
2883
- "packageName": "@backstage/plugin-auth-backend-module-auth0-provider"
2884
- },
2885
- {
2886
- "path": "../../plugins/auth-backend-module-bitbucket-provider/config.d.ts",
2887
- "value": {
2888
- "type": "object",
2889
- "properties": {
2890
- "auth": {
2891
- "type": "object",
2892
- "properties": {
2893
- "providers": {
2894
- "type": "object",
2895
- "properties": {
2896
- "bitbucket": {
2897
- "visibility": "frontend",
2898
- "type": "object",
2899
- "additionalProperties": {
2900
- "type": "object",
2901
- "properties": {
2902
- "clientId": {
2903
- "type": "string"
2904
- },
2905
- "clientSecret": {
2906
- "visibility": "secret",
2907
- "type": "string"
2908
- },
2909
- "additionalScopes": {
2910
- "anyOf": [
2911
- {
2912
- "type": "array",
2913
- "items": {
2914
- "type": "string"
2915
- }
2916
- },
2917
- {
2918
- "type": "string"
2919
- }
2920
- ]
2921
- },
2922
- "signIn": {
2923
- "type": "object",
2924
- "properties": {
2925
- "resolvers": {
2926
- "type": "array",
2927
- "items": {
2928
- "anyOf": [
2929
- {
2930
- "type": "object",
2931
- "properties": {
2932
- "resolver": {
2933
- "type": "string",
2934
- "const": "userIdMatchingUserEntityAnnotation"
2935
- }
2936
- },
2937
- "required": [
2938
- "resolver"
2939
- ]
2940
- },
2941
- {
2942
- "type": "object",
2943
- "properties": {
2944
- "resolver": {
2945
- "type": "string",
2946
- "const": "emailLocalPartMatchingUserEntityName"
2947
- },
2948
- "allowedDomains": {
2949
- "type": "array",
2950
- "items": {
2951
- "type": "string"
2952
- }
2953
- }
2954
- },
2955
- "required": [
2956
- "resolver"
2957
- ]
2958
- },
2959
- {
2960
- "type": "object",
2961
- "properties": {
2962
- "resolver": {
2963
- "type": "string",
2964
- "const": "emailMatchingUserEntityProfileEmail"
2965
- }
2966
- },
2967
- "required": [
2968
- "resolver"
2969
- ]
2970
- }
2971
- ]
2972
- }
2973
- }
2974
- },
2975
- "required": [
2976
- "resolvers"
2977
- ]
2978
- },
2979
- "sessionDuration": {}
2980
- },
2981
- "required": [
2982
- "clientId",
2983
- "clientSecret"
2984
- ]
2985
- }
2986
- }
2987
- }
2988
- }
2989
- }
2990
- }
2991
- },
2992
- "$schema": "http://json-schema.org/draft-07/schema#"
2993
- },
2994
- "packageName": "@backstage/plugin-auth-backend-module-bitbucket-provider"
2995
- },
2996
- {
2997
- "path": "../../plugins/auth-backend-module-bitbucket-server-provider/config.d.ts",
2998
- "value": {
2999
- "type": "object",
3000
- "properties": {
3001
- "auth": {
3002
- "type": "object",
3003
- "properties": {
3004
- "providers": {
3005
- "type": "object",
3006
- "properties": {
3007
- "bitbucketServer": {
3008
- "visibility": "frontend",
3009
- "type": "object",
3010
- "additionalProperties": {
3011
- "type": "object",
3012
- "properties": {
3013
- "clientId": {
3014
- "type": "string"
3015
- },
3016
- "clientSecret": {
3017
- "visibility": "secret",
3018
- "type": "string"
3019
- },
3020
- "host": {
3021
- "type": "string"
3022
- },
3023
- "callbackUrl": {
3024
- "type": "string"
3025
- },
3026
- "sessionDuration": {}
3027
- },
3028
- "required": [
3029
- "clientId",
3030
- "clientSecret",
3031
- "host"
3032
- ]
3033
- }
3034
- }
3035
- }
3036
- }
3037
- }
3038
- }
3039
- },
3040
- "$schema": "http://json-schema.org/draft-07/schema#"
3041
- },
3042
- "packageName": "@backstage/plugin-auth-backend-module-bitbucket-server-provider"
3043
- },
3044
- {
3045
- "path": "../../plugins/auth-backend-module-gcp-iap-provider/config.d.ts",
3046
- "value": {
3047
- "type": "object",
3048
- "properties": {
3049
- "auth": {
3050
- "type": "object",
3051
- "properties": {
3052
- "providers": {
3053
- "type": "object",
3054
- "properties": {
3055
- "gcpIap": {
3056
- "description": "Configuration for the Google Cloud Platform Identity-Aware Proxy (IAP) auth provider.",
3057
- "type": "object",
3058
- "properties": {
3059
- "audience": {
3060
- "description": "The audience to use when validating incoming JWT tokens.\nSee https://backstage.io/docs/auth/google/gcp-iap-auth",
3061
- "type": "string"
3062
- },
3063
- "jwtHeader": {
3064
- "description": "The name of the header to read the JWT token from, defaults to `'x-goog-iap-jwt-assertion'`.",
3065
- "type": "string"
3066
- },
3067
- "signIn": {
3068
- "type": "object",
3069
- "properties": {
3070
- "resolvers": {
3071
- "type": "array",
3072
- "items": {
3073
- "anyOf": [
3074
- {
3075
- "type": "object",
3076
- "properties": {
3077
- "resolver": {
3078
- "type": "string",
3079
- "const": "emailMatchingUserEntityAnnotation"
3080
- }
3081
- },
3082
- "required": [
3083
- "resolver"
3084
- ]
3085
- },
3086
- {
3087
- "type": "object",
3088
- "properties": {
3089
- "resolver": {
3090
- "type": "string",
3091
- "const": "idMatchingUserEntityAnnotation"
3092
- }
3093
- },
3094
- "required": [
3095
- "resolver"
3096
- ]
3097
- },
3098
- {
3099
- "type": "object",
3100
- "properties": {
3101
- "resolver": {
3102
- "type": "string",
3103
- "const": "emailLocalPartMatchingUserEntityName"
3104
- },
3105
- "allowedDomains": {
3106
- "type": "array",
3107
- "items": {
3108
- "type": "string"
3109
- }
3110
- }
3111
- },
3112
- "required": [
3113
- "resolver"
3114
- ]
3115
- },
3116
- {
3117
- "type": "object",
3118
- "properties": {
3119
- "resolver": {
3120
- "type": "string",
3121
- "const": "emailMatchingUserEntityProfileEmail"
3122
- }
3123
- },
3124
- "required": [
3125
- "resolver"
3126
- ]
3127
- }
3128
- ]
3129
- }
3130
- }
3131
- },
3132
- "required": [
3133
- "resolvers"
3134
- ]
3135
- },
3136
- "sessionDuration": {}
3137
- },
3138
- "required": [
3139
- "audience"
3140
- ]
3141
- }
3142
- }
3143
- }
3144
- }
3145
- }
3146
- },
3147
- "$schema": "http://json-schema.org/draft-07/schema#"
3148
- },
3149
- "packageName": "@backstage/plugin-auth-backend-module-gcp-iap-provider"
3150
- },
3151
- {
3152
- "path": "../../plugins/auth-backend-module-cloudflare-access-provider/config.d.ts",
3153
- "value": {
3154
- "type": "object",
3155
- "properties": {
3156
- "auth": {
3157
- "type": "object",
3158
- "properties": {
3159
- "providers": {
3160
- "type": "object",
3161
- "properties": {
3162
- "cfaccess": {
3163
- "visibility": "frontend",
3164
- "type": "object",
3165
- "properties": {
3166
- "teamName": {
3167
- "type": "string"
3168
- },
3169
- "serviceTokens": {
3170
- "deepVisibility": "secret",
3171
- "type": "array",
3172
- "items": {
3173
- "type": "object",
3174
- "properties": {
3175
- "token": {
3176
- "type": "string"
3177
- },
3178
- "subject": {
3179
- "type": "string"
3180
- }
3181
- },
3182
- "required": [
3183
- "subject",
3184
- "token"
3185
- ]
3186
- }
3187
- },
3188
- "jwtHeaderName": {
3189
- "type": "string"
3190
- },
3191
- "authorizationCookieName": {
3192
- "type": "string"
3193
- },
3194
- "signIn": {
3195
- "type": "object",
3196
- "properties": {
3197
- "resolvers": {
3198
- "type": "array",
3199
- "items": {
3200
- "anyOf": [
3201
- {
3202
- "type": "object",
3203
- "properties": {
3204
- "resolver": {
3205
- "type": "string",
3206
- "const": "emailLocalPartMatchingUserEntityName"
3207
- },
3208
- "allowedDomains": {
3209
- "type": "array",
3210
- "items": {
3211
- "type": "string"
3212
- }
3213
- }
3214
- },
3215
- "required": [
3216
- "resolver"
3217
- ]
3218
- },
3219
- {
3220
- "type": "object",
3221
- "properties": {
3222
- "resolver": {
3223
- "type": "string",
3224
- "const": "emailMatchingUserEntityProfileEmail"
3225
- }
3226
- },
3227
- "required": [
3228
- "resolver"
3229
- ]
3230
- }
3231
- ]
3232
- }
3233
- }
3234
- },
3235
- "required": [
3236
- "resolvers"
3237
- ]
3238
- }
3239
- },
3240
- "required": [
3241
- "teamName"
3242
- ]
3243
- },
3244
- "backstageTokenExpiration": {
3245
- "description": "The backstage token expiration."
3246
- },
3247
- "sessionDuration": {}
3248
- }
3249
- }
3250
- }
3251
- }
3252
- },
3253
- "$schema": "http://json-schema.org/draft-07/schema#"
3254
- },
3255
- "packageName": "@backstage/plugin-auth-backend-module-cloudflare-access-provider"
3256
- },
3257
- {
3258
- "path": "../../plugins/auth-backend-module-github-provider/config.d.ts",
3259
- "value": {
3260
- "type": "object",
3261
- "properties": {
3262
- "auth": {
3263
- "type": "object",
3264
- "properties": {
3265
- "providers": {
3266
- "type": "object",
3267
- "properties": {
3268
- "github": {
3269
- "visibility": "frontend",
3270
- "type": "object",
3271
- "additionalProperties": {
3272
- "type": "object",
3273
- "properties": {
3274
- "clientId": {
3275
- "type": "string"
3276
- },
3277
- "clientSecret": {
3278
- "visibility": "secret",
3279
- "type": "string"
3280
- },
3281
- "callbackUrl": {
3282
- "type": "string"
3283
- },
3284
- "enterpriseInstanceUrl": {
3285
- "type": "string"
3286
- },
3287
- "additionalScopes": {
3288
- "anyOf": [
3289
- {
3290
- "type": "array",
3291
- "items": {
3292
- "type": "string"
3293
- }
3294
- },
3295
- {
3296
- "type": "string"
3297
- }
3298
- ]
3299
- },
3300
- "signIn": {
3301
- "type": "object",
3302
- "properties": {
3303
- "resolvers": {
3304
- "type": "array",
3305
- "items": {
3306
- "anyOf": [
3307
- {
3308
- "type": "object",
3309
- "properties": {
3310
- "resolver": {
3311
- "type": "string",
3312
- "const": "usernameMatchingUserEntityName"
3313
- }
3314
- },
3315
- "required": [
3316
- "resolver"
3317
- ]
3318
- },
3319
- {
3320
- "type": "object",
3321
- "properties": {
3322
- "resolver": {
3323
- "type": "string",
3324
- "const": "emailLocalPartMatchingUserEntityName"
3325
- },
3326
- "allowedDomains": {
3327
- "type": "array",
3328
- "items": {
3329
- "type": "string"
3330
- }
3331
- }
3332
- },
3333
- "required": [
3334
- "resolver"
3335
- ]
3336
- },
3337
- {
3338
- "type": "object",
3339
- "properties": {
3340
- "resolver": {
3341
- "type": "string",
3342
- "const": "emailMatchingUserEntityProfileEmail"
3343
- }
3344
- },
3345
- "required": [
3346
- "resolver"
3347
- ]
3348
- }
3349
- ]
3350
- }
3351
- }
3352
- },
3353
- "required": [
3354
- "resolvers"
3355
- ]
3356
- },
3357
- "sessionDuration": {}
3358
- },
3359
- "required": [
3360
- "clientId",
3361
- "clientSecret"
3362
- ]
3363
- }
3364
- }
3365
- }
3366
- }
3367
- }
3368
- }
3369
- },
3370
- "$schema": "http://json-schema.org/draft-07/schema#"
3371
- },
3372
- "packageName": "@backstage/plugin-auth-backend-module-github-provider"
3373
- },
3374
- {
3375
- "path": "../../plugins/auth-backend-module-gitlab-provider/config.d.ts",
3376
- "value": {
3377
- "type": "object",
3378
- "properties": {
3379
- "auth": {
3380
- "type": "object",
3381
- "properties": {
3382
- "providers": {
3383
- "type": "object",
3384
- "properties": {
3385
- "gitlab": {
3386
- "visibility": "frontend",
3387
- "type": "object",
3388
- "additionalProperties": {
3389
- "type": "object",
3390
- "properties": {
3391
- "clientId": {
3392
- "type": "string"
3393
- },
3394
- "clientSecret": {
3395
- "visibility": "secret",
3396
- "type": "string"
3397
- },
3398
- "audience": {
3399
- "type": "string"
3400
- },
3401
- "callbackUrl": {
3402
- "type": "string"
3403
- },
3404
- "additionalScopes": {
3405
- "anyOf": [
3406
- {
3407
- "type": "array",
3408
- "items": {
3409
- "type": "string"
3410
- }
3411
- },
3412
- {
3413
- "type": "string"
3414
- }
3415
- ]
3416
- },
3417
- "signIn": {
3418
- "type": "object",
3419
- "properties": {
3420
- "resolvers": {
3421
- "type": "array",
3422
- "items": {
3423
- "anyOf": [
3424
- {
3425
- "type": "object",
3426
- "properties": {
3427
- "resolver": {
3428
- "type": "string",
3429
- "const": "usernameMatchingUserEntityName"
3430
- }
3431
- },
3432
- "required": [
3433
- "resolver"
3434
- ]
3435
- },
3436
- {
3437
- "type": "object",
3438
- "properties": {
3439
- "resolver": {
3440
- "type": "string",
3441
- "const": "emailLocalPartMatchingUserEntityName"
3442
- },
3443
- "allowedDomains": {
3444
- "type": "array",
3445
- "items": {
3446
- "type": "string"
3447
- }
3448
- }
3449
- },
3450
- "required": [
3451
- "resolver"
3452
- ]
3453
- },
3454
- {
3455
- "type": "object",
3456
- "properties": {
3457
- "resolver": {
3458
- "type": "string",
3459
- "const": "emailMatchingUserEntityProfileEmail"
3460
- }
3461
- },
3462
- "required": [
3463
- "resolver"
3464
- ]
3465
- }
3466
- ]
3467
- }
3468
- }
3469
- },
3470
- "required": [
3471
- "resolvers"
3472
- ]
3473
- },
3474
- "sessionDuration": {}
3475
- },
3476
- "required": [
3477
- "clientId",
3478
- "clientSecret"
3479
- ]
3480
- }
3481
- }
3482
- }
3483
- }
3484
- }
3485
- }
3486
- },
3487
- "$schema": "http://json-schema.org/draft-07/schema#"
3488
- },
3489
- "packageName": "@backstage/plugin-auth-backend-module-gitlab-provider"
3490
- },
3491
- {
3492
- "path": "../../plugins/auth-backend-module-google-provider/config.d.ts",
3493
- "value": {
3494
- "type": "object",
3495
- "properties": {
3496
- "auth": {
3497
- "description": "Configuration options for the auth plugin",
3498
- "type": "object",
3499
- "properties": {
3500
- "providers": {
3501
- "type": "object",
3502
- "properties": {
3503
- "google": {
3504
- "visibility": "frontend",
3505
- "type": "object",
3506
- "additionalProperties": {
3507
- "type": "object",
3508
- "properties": {
3509
- "clientId": {
3510
- "type": "string"
3511
- },
3512
- "clientSecret": {
3513
- "visibility": "secret",
3514
- "type": "string"
3515
- },
3516
- "callbackUrl": {
3517
- "type": "string"
3518
- },
3519
- "additionalScopes": {
3520
- "anyOf": [
3521
- {
3522
- "type": "array",
3523
- "items": {
3524
- "type": "string"
3525
- }
3526
- },
3527
- {
3528
- "type": "string"
3529
- }
3530
- ]
3531
- },
3532
- "signIn": {
3533
- "type": "object",
3534
- "properties": {
3535
- "resolvers": {
3536
- "type": "array",
3537
- "items": {
3538
- "anyOf": [
3539
- {
3540
- "type": "object",
3541
- "properties": {
3542
- "resolver": {
3543
- "type": "string",
3544
- "const": "emailMatchingUserEntityAnnotation"
3545
- }
3546
- },
3547
- "required": [
3548
- "resolver"
3549
- ]
3550
- },
3551
- {
3552
- "type": "object",
3553
- "properties": {
3554
- "resolver": {
3555
- "type": "string",
3556
- "const": "emailLocalPartMatchingUserEntityName"
3557
- },
3558
- "allowedDomains": {
3559
- "type": "array",
3560
- "items": {
3561
- "type": "string"
3562
- }
3563
- }
3564
- },
3565
- "required": [
3566
- "resolver"
3567
- ]
3568
- },
3569
- {
3570
- "type": "object",
3571
- "properties": {
3572
- "resolver": {
3573
- "type": "string",
3574
- "const": "emailMatchingUserEntityProfileEmail"
3575
- }
3576
- },
3577
- "required": [
3578
- "resolver"
3579
- ]
3580
- }
3581
- ]
3582
- }
3583
- }
3584
- },
3585
- "required": [
3586
- "resolvers"
3587
- ]
3588
- },
3589
- "sessionDuration": {}
3590
- },
3591
- "required": [
3592
- "clientId",
3593
- "clientSecret"
3594
- ]
3595
- }
3596
- }
3597
- }
3598
- }
3599
- }
3600
- }
3601
- },
3602
- "$schema": "http://json-schema.org/draft-07/schema#"
3603
- },
3604
- "packageName": "@backstage/plugin-auth-backend-module-google-provider"
3605
- },
3606
- {
3607
- "path": "../../plugins/auth-backend-module-microsoft-provider/config.d.ts",
3608
- "value": {
3609
- "type": "object",
3610
- "properties": {
3611
- "auth": {
3612
- "type": "object",
3613
- "properties": {
3614
- "providers": {
3615
- "type": "object",
3616
- "properties": {
3617
- "microsoft": {
3618
- "visibility": "frontend",
3619
- "type": "object",
3620
- "additionalProperties": {
3621
- "type": "object",
3622
- "properties": {
3623
- "clientId": {
3624
- "type": "string"
3625
- },
3626
- "tenantId": {
3627
- "type": "string"
3628
- },
3629
- "clientSecret": {
3630
- "visibility": "secret",
3631
- "type": "string"
3632
- },
3633
- "domainHint": {
3634
- "type": "string"
3635
- },
3636
- "callbackUrl": {
3637
- "type": "string"
3638
- },
3639
- "additionalScopes": {
3640
- "anyOf": [
3641
- {
3642
- "type": "array",
3643
- "items": {
3644
- "type": "string"
3645
- }
3646
- },
3647
- {
3648
- "type": "string"
3649
- }
3650
- ]
3651
- },
3652
- "skipUserProfile": {
3653
- "type": "boolean"
3654
- },
3655
- "signIn": {
3656
- "type": "object",
3657
- "properties": {
3658
- "resolvers": {
3659
- "type": "array",
3660
- "items": {
3661
- "anyOf": [
3662
- {
3663
- "type": "object",
3664
- "properties": {
3665
- "resolver": {
3666
- "type": "string",
3667
- "const": "emailMatchingUserEntityAnnotation"
3668
- }
3669
- },
3670
- "required": [
3671
- "resolver"
3672
- ]
3673
- },
3674
- {
3675
- "type": "object",
3676
- "properties": {
3677
- "resolver": {
3678
- "type": "string",
3679
- "const": "emailLocalPartMatchingUserEntityName"
3680
- },
3681
- "allowedDomains": {
3682
- "type": "array",
3683
- "items": {
3684
- "type": "string"
3685
- }
3686
- }
3687
- },
3688
- "required": [
3689
- "resolver"
3690
- ]
3691
- },
3692
- {
3693
- "type": "object",
3694
- "properties": {
3695
- "resolver": {
3696
- "type": "string",
3697
- "const": "emailMatchingUserEntityProfileEmail"
3698
- }
3699
- },
3700
- "required": [
3701
- "resolver"
3702
- ]
3703
- },
3704
- {
3705
- "type": "object",
3706
- "properties": {
3707
- "resolver": {
3708
- "type": "string",
3709
- "const": "userIdMatchingUserEntityAnnotation"
3710
- }
3711
- },
3712
- "required": [
3713
- "resolver"
3714
- ]
3715
- }
3716
- ]
3717
- }
3718
- }
3719
- },
3720
- "required": [
3721
- "resolvers"
3722
- ]
3723
- },
3724
- "sessionDuration": {}
3725
- },
3726
- "required": [
3727
- "clientId",
3728
- "clientSecret",
3729
- "tenantId"
3730
- ]
3731
- }
2919
+ "optionsSuccessStatus": {
2920
+ "type": "number"
3732
2921
  }
3733
2922
  }
3734
- }
3735
- }
3736
- }
3737
- },
3738
- "$schema": "http://json-schema.org/draft-07/schema#"
3739
- },
3740
- "packageName": "@backstage/plugin-auth-backend-module-microsoft-provider"
3741
- },
3742
- {
3743
- "path": "../../plugins/auth-backend-module-oauth2-provider/config.d.ts",
3744
- "value": {
3745
- "type": "object",
3746
- "properties": {
3747
- "auth": {
3748
- "type": "object",
3749
- "properties": {
3750
- "providers": {
2923
+ },
2924
+ "csp": {
2925
+ "description": "Content Security Policy options.\n\nThe keys are the plain policy ID, e.g. \"upgrade-insecure-requests\". The\nvalues are on the format that the helmet library expects them, as an\narray of strings. There is also the special value false, which means to\nremove the default value that Backstage puts in place for that policy.",
2926
+ "type": "object",
2927
+ "additionalProperties": {
2928
+ "anyOf": [
2929
+ {
2930
+ "type": "array",
2931
+ "items": {
2932
+ "type": "string"
2933
+ }
2934
+ },
2935
+ {
2936
+ "const": false,
2937
+ "type": "boolean"
2938
+ }
2939
+ ]
2940
+ }
2941
+ },
2942
+ "health": {
2943
+ "description": "Options for the health check service and endpoint.",
3751
2944
  "type": "object",
3752
2945
  "properties": {
3753
- "oauth2": {
3754
- "visibility": "frontend",
2946
+ "headers": {
2947
+ "description": "Additional headers to always include in the health check response.\n\nIt can be a good idea to set a header that uniquely identifies your service\nin a multi-service environment. This ensures that the health check that is\nconfigured for your service is actually hitting your service and not another.\n\nFor example, if using Envoy you can use the `service_name_matcher` configuration\nand set the `x-envoy-upstream-healthchecked-cluster` header to a matching value.",
3755
2948
  "type": "object",
3756
2949
  "additionalProperties": {
2950
+ "type": "string"
2951
+ }
2952
+ }
2953
+ }
2954
+ },
2955
+ "reading": {
2956
+ "description": "Configuration related to URL reading, used for example for reading catalog info\nfiles, scaffolder templates, and techdocs content.",
2957
+ "type": "object",
2958
+ "properties": {
2959
+ "allow": {
2960
+ "description": "A list of targets to allow outgoing requests to. Users will be able to make\nrequests on behalf of the backend to the targets that are allowed by this list.",
2961
+ "type": "array",
2962
+ "items": {
3757
2963
  "type": "object",
3758
2964
  "properties": {
3759
- "clientId": {
3760
- "type": "string"
3761
- },
3762
- "clientSecret": {
3763
- "visibility": "secret",
3764
- "type": "string"
3765
- },
3766
- "authorizationUrl": {
3767
- "type": "string"
3768
- },
3769
- "tokenUrl": {
3770
- "type": "string"
3771
- },
3772
- "scope": {
3773
- "deprecated": "use `additionalScopes` instead",
2965
+ "host": {
2966
+ "description": "A host to allow outgoing requests to, being either a full host or\na subdomain wildcard pattern with a leading `*`. For example `example.com`\nand `*.example.com` are valid values, `prod.*.example.com` is not.\nThe host may also contain a port, for example `example.com:8080`.",
3774
2967
  "type": "string"
3775
2968
  },
3776
- "additionalScopes": {
3777
- "anyOf": [
3778
- {
3779
- "type": "array",
3780
- "items": {
3781
- "type": "string"
3782
- }
3783
- },
3784
- {
3785
- "type": "string"
3786
- }
3787
- ]
3788
- },
3789
- "disableRefresh": {
3790
- "type": "boolean"
3791
- },
3792
- "includeBasicAuth": {
3793
- "type": "boolean"
3794
- },
3795
- "signIn": {
3796
- "type": "object",
3797
- "properties": {
3798
- "resolvers": {
3799
- "type": "array",
3800
- "items": {
3801
- "anyOf": [
3802
- {
3803
- "type": "object",
3804
- "properties": {
3805
- "resolver": {
3806
- "type": "string",
3807
- "const": "usernameMatchingUserEntityName"
3808
- }
3809
- },
3810
- "required": [
3811
- "resolver"
3812
- ]
3813
- },
3814
- {
3815
- "type": "object",
3816
- "properties": {
3817
- "resolver": {
3818
- "type": "string",
3819
- "const": "emailLocalPartMatchingUserEntityName"
3820
- },
3821
- "allowedDomains": {
3822
- "type": "array",
3823
- "items": {
3824
- "type": "string"
3825
- }
3826
- }
3827
- },
3828
- "required": [
3829
- "resolver"
3830
- ]
3831
- },
3832
- {
3833
- "type": "object",
3834
- "properties": {
3835
- "resolver": {
3836
- "type": "string",
3837
- "const": "emailMatchingUserEntityProfileEmail"
3838
- }
3839
- },
3840
- "required": [
3841
- "resolver"
3842
- ]
3843
- }
3844
- ]
3845
- }
3846
- }
3847
- },
3848
- "required": [
3849
- "resolvers"
3850
- ]
3851
- },
3852
- "sessionDuration": {}
2969
+ "paths": {
2970
+ "description": "An optional list of paths. In case they are present only targets matching\nany of them will are allowed. You can use trailing slashes to make sure only\nsubdirectories are allowed, for example `/mydir/` will allow targets with\npaths like `/mydir/a` but will block paths like `/mydir2`.",
2971
+ "type": "array",
2972
+ "items": {
2973
+ "type": "string"
2974
+ }
2975
+ }
3853
2976
  },
3854
2977
  "required": [
3855
- "authorizationUrl",
3856
- "clientId",
3857
- "clientSecret",
3858
- "tokenUrl"
2978
+ "host"
3859
2979
  ]
3860
2980
  }
3861
2981
  }
3862
2982
  }
3863
2983
  }
3864
- }
3865
- }
3866
- },
3867
- "$schema": "http://json-schema.org/draft-07/schema#"
3868
- },
3869
- "packageName": "@backstage/plugin-auth-backend-module-oauth2-provider"
3870
- },
3871
- {
3872
- "path": "../../plugins/auth-backend-module-oidc-provider/config.d.ts",
3873
- "value": {
3874
- "type": "object",
3875
- "properties": {
3876
- "auth": {
2984
+ },
2985
+ "required": [
2986
+ "baseUrl",
2987
+ "database"
2988
+ ]
2989
+ },
2990
+ "discovery": {
2991
+ "description": "Options used by the default discovery service.",
3877
2992
  "type": "object",
3878
2993
  "properties": {
3879
- "providers": {
3880
- "type": "object",
3881
- "properties": {
3882
- "oidc": {
3883
- "visibility": "frontend",
3884
- "type": "object",
3885
- "additionalProperties": {
3886
- "type": "object",
3887
- "properties": {
3888
- "clientId": {
3889
- "type": "string"
3890
- },
3891
- "clientSecret": {
3892
- "visibility": "secret",
3893
- "type": "string"
3894
- },
3895
- "metadataUrl": {
3896
- "type": "string"
3897
- },
3898
- "callbackUrl": {
3899
- "type": "string"
3900
- },
3901
- "tokenEndpointAuthMethod": {
3902
- "type": "string"
3903
- },
3904
- "tokenSignedResponseAlg": {
3905
- "type": "string"
3906
- },
3907
- "additionalScopes": {
3908
- "anyOf": [
3909
- {
3910
- "type": "array",
3911
- "items": {
3912
- "type": "string"
3913
- }
3914
- },
3915
- {
3916
- "type": "string"
3917
- }
3918
- ]
3919
- },
3920
- "prompt": {
3921
- "type": "string"
3922
- },
3923
- "timeout": {},
3924
- "signIn": {
2994
+ "endpoints": {
2995
+ "description": "A list of target base URLs and their associated plugins.",
2996
+ "type": "array",
2997
+ "items": {
2998
+ "type": "object",
2999
+ "properties": {
3000
+ "target": {
3001
+ "description": "The target base URL to use for the given set of plugins. Note that this\nneeds to be a full URL including the protocol and path parts that fully\naddress the root of a plugin's API endpoints.",
3002
+ "anyOf": [
3003
+ {
3925
3004
  "type": "object",
3926
3005
  "properties": {
3927
- "resolvers": {
3928
- "type": "array",
3929
- "items": {
3930
- "anyOf": [
3931
- {
3932
- "type": "object",
3933
- "properties": {
3934
- "resolver": {
3935
- "type": "string",
3936
- "const": "emailLocalPartMatchingUserEntityName"
3937
- },
3938
- "allowedDomains": {
3939
- "type": "array",
3940
- "items": {
3941
- "type": "string"
3942
- }
3943
- }
3944
- },
3945
- "required": [
3946
- "resolver"
3947
- ]
3948
- },
3949
- {
3950
- "type": "object",
3951
- "properties": {
3952
- "resolver": {
3953
- "type": "string",
3954
- "const": "emailMatchingUserEntityProfileEmail"
3955
- }
3956
- },
3957
- "required": [
3958
- "resolver"
3959
- ]
3960
- }
3961
- ]
3962
- }
3006
+ "internal": {
3007
+ "type": "string"
3008
+ },
3009
+ "external": {
3010
+ "type": "string"
3963
3011
  }
3964
- },
3965
- "required": [
3966
- "resolvers"
3967
- ]
3012
+ }
3968
3013
  },
3969
- "sessionDuration": {}
3970
- },
3971
- "required": [
3972
- "clientId",
3973
- "clientSecret",
3974
- "metadataUrl"
3014
+ {
3015
+ "type": "string"
3016
+ }
3975
3017
  ]
3018
+ },
3019
+ "plugins": {
3020
+ "description": "Array of plugins which use that target base URL.\n\nThe special value `*` can be used to match all plugins.",
3021
+ "type": "array",
3022
+ "items": {
3023
+ "type": "string"
3024
+ }
3976
3025
  }
3977
- }
3026
+ },
3027
+ "required": [
3028
+ "plugins",
3029
+ "target"
3030
+ ]
3978
3031
  }
3979
3032
  }
3980
- }
3033
+ },
3034
+ "required": [
3035
+ "endpoints"
3036
+ ]
3981
3037
  }
3982
3038
  },
3039
+ "required": [
3040
+ "app"
3041
+ ],
3983
3042
  "$schema": "http://json-schema.org/draft-07/schema#"
3984
3043
  },
3985
- "packageName": "@backstage/plugin-auth-backend-module-oidc-provider"
3044
+ "packageName": "@backstage/backend-defaults"
3986
3045
  },
3987
3046
  {
3988
- "path": "../../plugins/auth-backend-module-onelogin-provider/config.d.ts",
3047
+ "path": "../../plugins/events-node/config.d.ts",
3989
3048
  "value": {
3990
3049
  "type": "object",
3991
3050
  "properties": {
3992
- "auth": {
3051
+ "events": {
3993
3052
  "type": "object",
3994
3053
  "properties": {
3995
- "providers": {
3996
- "type": "object",
3997
- "properties": {
3998
- "onelogin": {
3999
- "visibility": "frontend",
4000
- "type": "object",
4001
- "additionalProperties": {
4002
- "type": "object",
4003
- "properties": {
4004
- "clientId": {
4005
- "type": "string"
4006
- },
4007
- "clientSecret": {
4008
- "visibility": "secret",
4009
- "type": "string"
4010
- },
4011
- "issuer": {
4012
- "type": "string"
4013
- },
4014
- "callbackUrl": {
4015
- "type": "string"
4016
- },
4017
- "signIn": {
4018
- "type": "object",
4019
- "properties": {
4020
- "resolvers": {
4021
- "type": "array",
4022
- "items": {
4023
- "anyOf": [
4024
- {
4025
- "type": "object",
4026
- "properties": {
4027
- "resolver": {
4028
- "type": "string",
4029
- "const": "usernameMatchingUserEntityName"
4030
- }
4031
- },
4032
- "required": [
4033
- "resolver"
4034
- ]
4035
- },
4036
- {
4037
- "type": "object",
4038
- "properties": {
4039
- "resolver": {
4040
- "type": "string",
4041
- "const": "emailLocalPartMatchingUserEntityName"
4042
- },
4043
- "allowedDomains": {
4044
- "type": "array",
4045
- "items": {
4046
- "type": "string"
4047
- }
4048
- }
4049
- },
4050
- "required": [
4051
- "resolver"
4052
- ]
4053
- },
4054
- {
4055
- "type": "object",
4056
- "properties": {
4057
- "resolver": {
4058
- "type": "string",
4059
- "const": "emailMatchingUserEntityProfileEmail"
4060
- }
4061
- },
4062
- "required": [
4063
- "resolver"
4064
- ]
4065
- }
4066
- ]
4067
- }
4068
- }
4069
- },
4070
- "required": [
4071
- "resolvers"
4072
- ]
4073
- },
4074
- "sessionDuration": {}
4075
- },
4076
- "required": [
4077
- "clientId",
4078
- "clientSecret",
4079
- "issuer"
4080
- ]
4081
- }
4082
- }
4083
- }
3054
+ "useEventBus": {
3055
+ "description": "Whether to use the event bus API in the events plugin backend to\ndistribute events across multiple instances when publishing and\nsubscribing to events.\n\nThe default is 'auto', which means means that the event bus API will be\nused if it's available, but will be disabled if the events backend\nreturns a 404.\n\nIf set to 'never', the events service will only ever publish events\nlocally to the same instance, while if set to 'always', the event bus API\nwill never be disabled, even if the events backend returns a 404.",
3056
+ "enum": [
3057
+ "always",
3058
+ "auto",
3059
+ "never"
3060
+ ],
3061
+ "type": "string"
4084
3062
  }
4085
3063
  }
4086
3064
  }
4087
3065
  },
4088
3066
  "$schema": "http://json-schema.org/draft-07/schema#"
4089
3067
  },
4090
- "packageName": "@backstage/plugin-auth-backend-module-onelogin-provider"
3068
+ "packageName": "@backstage/plugin-events-node"
4091
3069
  },
4092
3070
  {
4093
- "path": "../../plugins/auth-backend-module-okta-provider/config.d.ts",
3071
+ "path": "../../plugins/auth-backend-module-google-provider/config.d.ts",
4094
3072
  "value": {
4095
3073
  "type": "object",
4096
3074
  "properties": {
4097
3075
  "auth": {
3076
+ "description": "Configuration options for the auth plugin",
4098
3077
  "type": "object",
4099
3078
  "properties": {
4100
3079
  "providers": {
4101
3080
  "type": "object",
4102
3081
  "properties": {
4103
- "okta": {
3082
+ "google": {
4104
3083
  "visibility": "frontend",
4105
3084
  "type": "object",
4106
3085
  "additionalProperties": {
@@ -4113,15 +3092,6 @@
4113
3092
  "visibility": "secret",
4114
3093
  "type": "string"
4115
3094
  },
4116
- "audience": {
4117
- "type": "string"
4118
- },
4119
- "authServerId": {
4120
- "type": "string"
4121
- },
4122
- "idp": {
4123
- "type": "string"
4124
- },
4125
3095
  "callbackUrl": {
4126
3096
  "type": "string"
4127
3097
  },
@@ -4210,7 +3180,7 @@
4210
3180
  },
4211
3181
  "$schema": "http://json-schema.org/draft-07/schema#"
4212
3182
  },
4213
- "packageName": "@backstage/plugin-auth-backend-module-okta-provider"
3183
+ "packageName": "@backstage/plugin-auth-backend-module-google-provider"
4214
3184
  },
4215
3185
  {
4216
3186
  "path": "../integration-aws-node/config.d.ts",
@@ -4321,6 +3291,119 @@
4321
3291
  "$schema": "http://json-schema.org/draft-07/schema#"
4322
3292
  },
4323
3293
  "packageName": "@backstage/integration-aws-node"
3294
+ },
3295
+ {
3296
+ "path": "../../node_modules/@backstage-community/plugin-puppetdb/node_modules/@backstage/frontend-app-api/config.d.ts",
3297
+ "value": {
3298
+ "type": "object",
3299
+ "properties": {
3300
+ "app": {
3301
+ "type": "object",
3302
+ "properties": {
3303
+ "experimental": {
3304
+ "type": "object",
3305
+ "properties": {
3306
+ "packages": {
3307
+ "visibility": "frontend",
3308
+ "deepVisibility": "frontend",
3309
+ "anyOf": [
3310
+ {
3311
+ "type": "object",
3312
+ "properties": {
3313
+ "include": {
3314
+ "type": "array",
3315
+ "items": {
3316
+ "type": "string"
3317
+ }
3318
+ },
3319
+ "exclude": {
3320
+ "type": "array",
3321
+ "items": {
3322
+ "type": "string"
3323
+ }
3324
+ }
3325
+ }
3326
+ },
3327
+ {
3328
+ "const": "all",
3329
+ "type": "string"
3330
+ }
3331
+ ]
3332
+ }
3333
+ }
3334
+ },
3335
+ "routes": {
3336
+ "type": "object",
3337
+ "properties": {
3338
+ "bindings": {
3339
+ "description": "Maps external route references to regular route references. Both the\nkey and the value is expected to be on the form `<pluginId>.<routeId>`.\nIf the value is `false`, the route will be disabled even if it has a\ndefault mapping.",
3340
+ "deepVisibility": "frontend",
3341
+ "type": "object",
3342
+ "additionalProperties": {
3343
+ "anyOf": [
3344
+ {
3345
+ "const": false,
3346
+ "type": "boolean"
3347
+ },
3348
+ {
3349
+ "type": "string"
3350
+ }
3351
+ ]
3352
+ }
3353
+ }
3354
+ }
3355
+ },
3356
+ "extensions": {
3357
+ "deepVisibility": "frontend",
3358
+ "type": "array",
3359
+ "items": {
3360
+ "anyOf": [
3361
+ {
3362
+ "type": "object",
3363
+ "additionalProperties": {
3364
+ "anyOf": [
3365
+ {
3366
+ "type": "object",
3367
+ "properties": {
3368
+ "attachTo": {
3369
+ "type": "object",
3370
+ "properties": {
3371
+ "id": {
3372
+ "type": "string"
3373
+ },
3374
+ "input": {
3375
+ "type": "string"
3376
+ }
3377
+ },
3378
+ "required": [
3379
+ "id",
3380
+ "input"
3381
+ ]
3382
+ },
3383
+ "disabled": {
3384
+ "type": "boolean"
3385
+ },
3386
+ "config": {}
3387
+ }
3388
+ },
3389
+ {
3390
+ "type": "boolean"
3391
+ }
3392
+ ]
3393
+ }
3394
+ },
3395
+ {
3396
+ "type": "string"
3397
+ }
3398
+ ]
3399
+ }
3400
+ }
3401
+ }
3402
+ }
3403
+ },
3404
+ "$schema": "http://json-schema.org/draft-07/schema#"
3405
+ },
3406
+ "packageName": "@backstage/frontend-app-api"
4324
3407
  }
4325
3408
  ],
4326
3409
  "backstageConfigSchemaVersion": 1