@techdocs/cli 1.8.17 → 1.8.19-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.
- package/CHANGELOG.md +11 -0
- package/dist/embedded-app/.config-schema.json +506 -478
- package/dist/embedded-app/index.html +1 -1
- package/dist/embedded-app/static/{124.159a325a.chunk.js → 124.1db148ab.chunk.js} +1 -1
- package/dist/embedded-app/static/{124.159a325a.chunk.js.map → 124.1db148ab.chunk.js.map} +1 -1
- package/dist/embedded-app/static/{1297.bbeaddd0.chunk.js → 1297.0e20ec6b.chunk.js} +1 -1
- package/dist/embedded-app/static/{1297.bbeaddd0.chunk.js.map → 1297.0e20ec6b.chunk.js.map} +1 -1
- package/dist/embedded-app/static/{1902.6f404f8c.chunk.js → 1902.74e9d604.chunk.js} +1 -1
- package/dist/embedded-app/static/{1902.6f404f8c.chunk.js.map → 1902.74e9d604.chunk.js.map} +1 -1
- package/dist/embedded-app/static/{2401.ba11bac5.chunk.js → 2401.ca97a22a.chunk.js} +1 -1
- package/dist/embedded-app/static/{2401.ba11bac5.chunk.js.map → 2401.ca97a22a.chunk.js.map} +1 -1
- package/dist/embedded-app/static/{2420.9986a695.chunk.js → 2420.2b6286b5.chunk.js} +1 -1
- package/dist/embedded-app/static/{2420.9986a695.chunk.js.map → 2420.2b6286b5.chunk.js.map} +1 -1
- package/dist/embedded-app/static/{287.57153ff3.chunk.js → 287.8842f1ab.chunk.js} +1 -1
- package/dist/embedded-app/static/{287.57153ff3.chunk.js.map → 287.8842f1ab.chunk.js.map} +1 -1
- package/dist/embedded-app/static/{3182.98982985.chunk.js → 3182.62f19265.chunk.js} +1 -1
- package/dist/embedded-app/static/{3182.98982985.chunk.js.map → 3182.62f19265.chunk.js.map} +1 -1
- package/dist/embedded-app/static/{3308.b3458818.chunk.js → 3308.82562d2f.chunk.js} +1 -1
- package/dist/embedded-app/static/{3308.b3458818.chunk.js.map → 3308.82562d2f.chunk.js.map} +1 -1
- package/dist/embedded-app/static/{3632.2a549b64.chunk.js → 3632.f5bd752c.chunk.js} +1 -1
- package/dist/embedded-app/static/{3632.2a549b64.chunk.js.map → 3632.f5bd752c.chunk.js.map} +1 -1
- package/dist/embedded-app/static/{3720.1978cecb.chunk.js → 3720.6737494a.chunk.js} +1 -1
- package/dist/embedded-app/static/{3720.1978cecb.chunk.js.map → 3720.6737494a.chunk.js.map} +1 -1
- package/dist/embedded-app/static/{4036.36665783.chunk.js → 4036.66c4b641.chunk.js} +1 -1
- package/dist/embedded-app/static/{4036.36665783.chunk.js.map → 4036.66c4b641.chunk.js.map} +1 -1
- package/dist/embedded-app/static/{4487.f9cc6633.chunk.js → 4487.fba50d66.chunk.js} +1 -1
- package/dist/embedded-app/static/{4487.f9cc6633.chunk.js.map → 4487.fba50d66.chunk.js.map} +1 -1
- package/dist/embedded-app/static/{4516.b1a92d53.chunk.js → 4516.cb7b4abb.chunk.js} +1 -1
- package/dist/embedded-app/static/{4516.b1a92d53.chunk.js.map → 4516.cb7b4abb.chunk.js.map} +1 -1
- package/dist/embedded-app/static/{4919.e2124196.chunk.js → 4919.72f5403e.chunk.js} +1 -1
- package/dist/embedded-app/static/{4919.e2124196.chunk.js.map → 4919.72f5403e.chunk.js.map} +1 -1
- package/dist/embedded-app/static/{5724.d2755c89.chunk.js → 5724.0fd2d023.chunk.js} +1 -1
- package/dist/embedded-app/static/{5724.d2755c89.chunk.js.map → 5724.0fd2d023.chunk.js.map} +1 -1
- package/dist/embedded-app/static/{5788.9c942dee.chunk.js → 5788.791edd6a.chunk.js} +1 -1
- package/dist/embedded-app/static/{5788.9c942dee.chunk.js.map → 5788.791edd6a.chunk.js.map} +1 -1
- package/dist/embedded-app/static/{6271.0b57a0cf.chunk.js → 6271.1f27aefc.chunk.js} +1 -1
- package/dist/embedded-app/static/{6271.0b57a0cf.chunk.js.map → 6271.1f27aefc.chunk.js.map} +1 -1
- package/dist/embedded-app/static/{6415.6b71f4b9.chunk.js → 6415.ca28e59e.chunk.js} +1 -1
- package/dist/embedded-app/static/{6415.6b71f4b9.chunk.js.map → 6415.ca28e59e.chunk.js.map} +1 -1
- package/dist/embedded-app/static/{8307.637eb9f7.chunk.js → 8307.77d02788.chunk.js} +1 -1
- package/dist/embedded-app/static/{8307.637eb9f7.chunk.js.map → 8307.77d02788.chunk.js.map} +1 -1
- package/dist/embedded-app/static/{8384.0c6da92e.chunk.js → 8384.c87298a7.chunk.js} +1 -1
- package/dist/embedded-app/static/{8384.0c6da92e.chunk.js.map → 8384.c87298a7.chunk.js.map} +1 -1
- package/dist/embedded-app/static/{898.c75e7113.chunk.js → 898.ca4c8c81.chunk.js} +1 -1
- package/dist/embedded-app/static/{898.c75e7113.chunk.js.map → 898.ca4c8c81.chunk.js.map} +1 -1
- package/dist/embedded-app/static/{9234.ad94610e.chunk.js → 9234.d383e83b.chunk.js} +1 -1
- package/dist/embedded-app/static/{9234.ad94610e.chunk.js.map → 9234.d383e83b.chunk.js.map} +1 -1
- package/dist/embedded-app/static/{9605.2c26c71d.chunk.js → 9605.1e25e9dd.chunk.js} +1 -1
- package/dist/embedded-app/static/{9605.2c26c71d.chunk.js.map → 9605.1e25e9dd.chunk.js.map} +1 -1
- package/dist/embedded-app/static/{9652.5fd19eb0.chunk.js → 9652.4c4ba768.chunk.js} +1 -1
- package/dist/embedded-app/static/{9652.5fd19eb0.chunk.js.map → 9652.4c4ba768.chunk.js.map} +1 -1
- package/dist/embedded-app/static/{main.87e083f2.js → main.c7b3b8b8.js} +9 -9
- package/dist/embedded-app/static/main.c7b3b8b8.js.map +1 -0
- package/dist/embedded-app/static/{module-material-table.e3f26578.js → module-material-table.02244708.js} +1 -1
- package/dist/embedded-app/static/{module-material-table.e3f26578.js.map → module-material-table.02244708.js.map} +1 -1
- package/dist/embedded-app/static/{module-material-ui.2c452b58.js → module-material-ui.3f32753b.js} +1 -1
- package/dist/embedded-app/static/{module-material-ui.2c452b58.js.map → module-material-ui.3f32753b.js.map} +1 -1
- package/dist/embedded-app/static/{module-mui.e17dd999.js → module-mui.0ed988ce.js} +1 -1
- package/dist/embedded-app/static/{module-mui.e17dd999.js.map → module-mui.0ed988ce.js.map} +1 -1
- package/dist/embedded-app/static/{module-react-beautiful-dnd.ea59573c.js → module-react-beautiful-dnd.996c3b37.js} +1 -1
- package/dist/embedded-app/static/{module-react-beautiful-dnd.ea59573c.js.map → module-react-beautiful-dnd.996c3b37.js.map} +1 -1
- package/dist/embedded-app/static/{module-react-dom.1f38e13a.js → module-react-dom.3d6c828c.js} +6 -6
- package/dist/embedded-app/static/module-react-dom.3d6c828c.js.map +1 -0
- package/dist/embedded-app/static/{module-react-router-dom.0c2bb614.js → module-react-router-dom.3e907de2.js} +1 -1
- package/dist/embedded-app/static/{module-react-router-dom.0c2bb614.js.map → module-react-router-dom.3e907de2.js.map} +1 -1
- package/dist/embedded-app/static/{module-react-router.dac764ce.js → module-react-router.f207f6b1.js} +1 -1
- package/dist/embedded-app/static/{module-react-router.dac764ce.js.map → module-react-router.f207f6b1.js.map} +1 -1
- package/dist/embedded-app/static/{runtime.87e083f2.js → runtime.c7b3b8b8.js} +2 -2
- package/dist/embedded-app/static/{runtime.87e083f2.js.map → runtime.c7b3b8b8.js.map} +1 -1
- package/dist/embedded-app/static/vendor.c7b3b8b8.js +155 -0
- package/dist/embedded-app/static/vendor.c7b3b8b8.js.map +1 -0
- package/dist/index.cjs.js +1 -1
- package/package.json +4 -4
- package/dist/embedded-app/static/main.87e083f2.js.map +0 -1
- package/dist/embedded-app/static/module-react-dom.1f38e13a.js.map +0 -1
- package/dist/embedded-app/static/vendor.87e083f2.js +0 -155
- package/dist/embedded-app/static/vendor.87e083f2.js.map +0 -1
|
@@ -125,51 +125,6 @@
|
|
|
125
125
|
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
126
126
|
}
|
|
127
127
|
},
|
|
128
|
-
{
|
|
129
|
-
"path": "../core-components/config.d.ts",
|
|
130
|
-
"value": {
|
|
131
|
-
"type": "object",
|
|
132
|
-
"properties": {
|
|
133
|
-
"auth": {
|
|
134
|
-
"type": "object",
|
|
135
|
-
"properties": {
|
|
136
|
-
"autologout": {
|
|
137
|
-
"description": "Autologout feature configuration",
|
|
138
|
-
"type": "object",
|
|
139
|
-
"properties": {
|
|
140
|
-
"enabled": {
|
|
141
|
-
"description": "Enable or disable the autologout feature",
|
|
142
|
-
"visibility": "frontend",
|
|
143
|
-
"type": "boolean"
|
|
144
|
-
},
|
|
145
|
-
"idleTimeoutMinutes": {
|
|
146
|
-
"description": "Number of minutes after which the inactive user is logged out automatically.\nDefault is 60 minutes (1 hour)",
|
|
147
|
-
"visibility": "frontend",
|
|
148
|
-
"type": "number"
|
|
149
|
-
},
|
|
150
|
-
"promptBeforeIdleSeconds": {
|
|
151
|
-
"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.",
|
|
152
|
-
"visibility": "frontend",
|
|
153
|
-
"type": "number"
|
|
154
|
-
},
|
|
155
|
-
"useWorkerTimers": {
|
|
156
|
-
"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.",
|
|
157
|
-
"visibility": "frontend",
|
|
158
|
-
"type": "boolean"
|
|
159
|
-
},
|
|
160
|
-
"logoutIfDisconnected": {
|
|
161
|
-
"description": "Enable/disable the automatic logout also on users that are logged in but with no Backstage tabs open.\nDefault is true.",
|
|
162
|
-
"visibility": "frontend",
|
|
163
|
-
"type": "boolean"
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
},
|
|
170
|
-
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
171
|
-
}
|
|
172
|
-
},
|
|
173
128
|
{
|
|
174
129
|
"path": "../core-app-api/config.d.ts",
|
|
175
130
|
"value": {
|
|
@@ -399,6 +354,51 @@
|
|
|
399
354
|
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
400
355
|
}
|
|
401
356
|
},
|
|
357
|
+
{
|
|
358
|
+
"path": "../core-components/config.d.ts",
|
|
359
|
+
"value": {
|
|
360
|
+
"type": "object",
|
|
361
|
+
"properties": {
|
|
362
|
+
"auth": {
|
|
363
|
+
"type": "object",
|
|
364
|
+
"properties": {
|
|
365
|
+
"autologout": {
|
|
366
|
+
"description": "Autologout feature configuration",
|
|
367
|
+
"type": "object",
|
|
368
|
+
"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.",
|
|
381
|
+
"visibility": "frontend",
|
|
382
|
+
"type": "number"
|
|
383
|
+
},
|
|
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.",
|
|
386
|
+
"visibility": "frontend",
|
|
387
|
+
"type": "boolean"
|
|
388
|
+
},
|
|
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.",
|
|
391
|
+
"visibility": "frontend",
|
|
392
|
+
"type": "boolean"
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
},
|
|
399
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
400
|
+
}
|
|
401
|
+
},
|
|
402
402
|
{
|
|
403
403
|
"path": "../../plugins/techdocs/config.d.ts",
|
|
404
404
|
"value": {
|
|
@@ -1318,8 +1318,7 @@
|
|
|
1318
1318
|
"const": "memory"
|
|
1319
1319
|
},
|
|
1320
1320
|
"defaultTtl": {
|
|
1321
|
-
"description": "An optional default TTL (in milliseconds)."
|
|
1322
|
-
"type": "number"
|
|
1321
|
+
"description": "An optional default TTL (in milliseconds)."
|
|
1323
1322
|
}
|
|
1324
1323
|
},
|
|
1325
1324
|
"required": [
|
|
@@ -1339,8 +1338,7 @@
|
|
|
1339
1338
|
"type": "string"
|
|
1340
1339
|
},
|
|
1341
1340
|
"defaultTtl": {
|
|
1342
|
-
"description": "An optional default TTL (in milliseconds)."
|
|
1343
|
-
"type": "number"
|
|
1341
|
+
"description": "An optional default TTL (in milliseconds)."
|
|
1344
1342
|
},
|
|
1345
1343
|
"useRedisSets": {
|
|
1346
1344
|
"description": "Whether or not [useRedisSets](https://github.com/jaredwray/keyv/tree/main/packages/redis#useredissets) should be configured to this redis cache.\nDefaults to true if unspecified.",
|
|
@@ -1365,8 +1363,7 @@
|
|
|
1365
1363
|
"type": "string"
|
|
1366
1364
|
},
|
|
1367
1365
|
"defaultTtl": {
|
|
1368
|
-
"description": "An optional default TTL (in milliseconds)."
|
|
1369
|
-
"type": "number"
|
|
1366
|
+
"description": "An optional default TTL (in milliseconds)."
|
|
1370
1367
|
}
|
|
1371
1368
|
},
|
|
1372
1369
|
"required": [
|
|
@@ -1377,6 +1374,7 @@
|
|
|
1377
1374
|
]
|
|
1378
1375
|
},
|
|
1379
1376
|
"cors": {
|
|
1377
|
+
"description": "Properties returned upon CORS requests to the backend, including the app-backend.",
|
|
1380
1378
|
"type": "object",
|
|
1381
1379
|
"properties": {
|
|
1382
1380
|
"origin": {
|
|
@@ -1445,6 +1443,24 @@
|
|
|
1445
1443
|
}
|
|
1446
1444
|
}
|
|
1447
1445
|
},
|
|
1446
|
+
"csp": {
|
|
1447
|
+
"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.",
|
|
1448
|
+
"type": "object",
|
|
1449
|
+
"additionalProperties": {
|
|
1450
|
+
"anyOf": [
|
|
1451
|
+
{
|
|
1452
|
+
"type": "array",
|
|
1453
|
+
"items": {
|
|
1454
|
+
"type": "string"
|
|
1455
|
+
}
|
|
1456
|
+
},
|
|
1457
|
+
{
|
|
1458
|
+
"const": false,
|
|
1459
|
+
"type": "boolean"
|
|
1460
|
+
}
|
|
1461
|
+
]
|
|
1462
|
+
}
|
|
1463
|
+
},
|
|
1448
1464
|
"reading": {
|
|
1449
1465
|
"description": "Configuration related to URL reading, used for example for reading catalog info\nfiles, scaffolder templates, and techdocs content.",
|
|
1450
1466
|
"type": "object",
|
|
@@ -1473,24 +1489,6 @@
|
|
|
1473
1489
|
}
|
|
1474
1490
|
}
|
|
1475
1491
|
}
|
|
1476
|
-
},
|
|
1477
|
-
"csp": {
|
|
1478
|
-
"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.",
|
|
1479
|
-
"type": "object",
|
|
1480
|
-
"additionalProperties": {
|
|
1481
|
-
"anyOf": [
|
|
1482
|
-
{
|
|
1483
|
-
"type": "array",
|
|
1484
|
-
"items": {
|
|
1485
|
-
"type": "string"
|
|
1486
|
-
}
|
|
1487
|
-
},
|
|
1488
|
-
{
|
|
1489
|
-
"const": false,
|
|
1490
|
-
"type": "boolean"
|
|
1491
|
-
}
|
|
1492
|
-
]
|
|
1493
|
-
}
|
|
1494
1492
|
}
|
|
1495
1493
|
},
|
|
1496
1494
|
"required": [
|
|
@@ -1507,6 +1505,24 @@
|
|
|
1507
1505
|
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
1508
1506
|
}
|
|
1509
1507
|
},
|
|
1508
|
+
{
|
|
1509
|
+
"path": "../backend-plugin-api/config.d.ts",
|
|
1510
|
+
"value": {
|
|
1511
|
+
"type": "object",
|
|
1512
|
+
"properties": {
|
|
1513
|
+
"backend": {
|
|
1514
|
+
"type": "object",
|
|
1515
|
+
"properties": {
|
|
1516
|
+
"workingDirectory": {
|
|
1517
|
+
"description": "An absolute path to a directory that can be used as a working dir, for\nexample as scratch space for large operations.",
|
|
1518
|
+
"type": "string"
|
|
1519
|
+
}
|
|
1520
|
+
}
|
|
1521
|
+
}
|
|
1522
|
+
},
|
|
1523
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
1524
|
+
}
|
|
1525
|
+
},
|
|
1510
1526
|
{
|
|
1511
1527
|
"path": "../../node_modules/@oriflame/backstage-plugin-score-card/node_modules/@backstage/core-components/config.d.ts",
|
|
1512
1528
|
"value": {
|
|
@@ -1669,420 +1685,118 @@
|
|
|
1669
1685
|
"backend": {
|
|
1670
1686
|
"type": "object",
|
|
1671
1687
|
"properties": {
|
|
1672
|
-
"
|
|
1673
|
-
"
|
|
1674
|
-
"
|
|
1675
|
-
|
|
1676
|
-
"
|
|
1677
|
-
"
|
|
1688
|
+
"packages": {
|
|
1689
|
+
"description": "Used by the feature discovery service",
|
|
1690
|
+
"anyOf": [
|
|
1691
|
+
{
|
|
1692
|
+
"type": "object",
|
|
1693
|
+
"properties": {
|
|
1694
|
+
"include": {
|
|
1695
|
+
"type": "array",
|
|
1696
|
+
"items": {
|
|
1697
|
+
"type": "string"
|
|
1698
|
+
}
|
|
1699
|
+
},
|
|
1700
|
+
"exclude": {
|
|
1701
|
+
"type": "array",
|
|
1702
|
+
"items": {
|
|
1703
|
+
"type": "string"
|
|
1704
|
+
}
|
|
1705
|
+
}
|
|
1706
|
+
}
|
|
1678
1707
|
},
|
|
1679
|
-
|
|
1680
|
-
"
|
|
1681
|
-
"
|
|
1682
|
-
|
|
1708
|
+
{
|
|
1709
|
+
"const": "all",
|
|
1710
|
+
"type": "string"
|
|
1711
|
+
}
|
|
1712
|
+
]
|
|
1713
|
+
}
|
|
1714
|
+
}
|
|
1715
|
+
}
|
|
1716
|
+
},
|
|
1717
|
+
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
1718
|
+
}
|
|
1719
|
+
},
|
|
1720
|
+
{
|
|
1721
|
+
"path": "../backend-defaults/config.d.ts",
|
|
1722
|
+
"value": {
|
|
1723
|
+
"type": "object",
|
|
1724
|
+
"properties": {
|
|
1725
|
+
"app": {
|
|
1726
|
+
"type": "object",
|
|
1727
|
+
"properties": {
|
|
1728
|
+
"baseUrl": {
|
|
1729
|
+
"type": "string"
|
|
1730
|
+
}
|
|
1731
|
+
},
|
|
1732
|
+
"required": [
|
|
1733
|
+
"baseUrl"
|
|
1734
|
+
]
|
|
1735
|
+
},
|
|
1736
|
+
"backend": {
|
|
1737
|
+
"type": "object",
|
|
1738
|
+
"properties": {
|
|
1739
|
+
"baseUrl": {
|
|
1740
|
+
"description": "The full base URL of the backend, as seen from the browser's point of\nview as it makes calls to the backend.",
|
|
1741
|
+
"type": "string"
|
|
1742
|
+
},
|
|
1743
|
+
"listen": {
|
|
1744
|
+
"description": "Address that the backend should listen to.",
|
|
1745
|
+
"anyOf": [
|
|
1746
|
+
{
|
|
1747
|
+
"type": "object",
|
|
1748
|
+
"properties": {
|
|
1749
|
+
"host": {
|
|
1750
|
+
"description": "Address of the interface that the backend should bind to.",
|
|
1751
|
+
"type": "string"
|
|
1752
|
+
},
|
|
1753
|
+
"port": {
|
|
1754
|
+
"description": "Port that the backend should listen to.",
|
|
1755
|
+
"type": [
|
|
1756
|
+
"string",
|
|
1757
|
+
"number"
|
|
1758
|
+
]
|
|
1759
|
+
}
|
|
1760
|
+
}
|
|
1761
|
+
},
|
|
1762
|
+
{
|
|
1763
|
+
"type": "string"
|
|
1764
|
+
}
|
|
1765
|
+
]
|
|
1766
|
+
},
|
|
1767
|
+
"https": {
|
|
1768
|
+
"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.",
|
|
1769
|
+
"anyOf": [
|
|
1770
|
+
{
|
|
1771
|
+
"type": "object",
|
|
1772
|
+
"properties": {
|
|
1773
|
+
"certificate": {
|
|
1774
|
+
"description": "Certificate configuration",
|
|
1683
1775
|
"type": "object",
|
|
1684
1776
|
"properties": {
|
|
1685
|
-
"
|
|
1686
|
-
"
|
|
1687
|
-
"
|
|
1777
|
+
"cert": {
|
|
1778
|
+
"description": "PEM encoded certificate. Use $file to load in a file",
|
|
1779
|
+
"type": "string"
|
|
1780
|
+
},
|
|
1781
|
+
"key": {
|
|
1782
|
+
"description": "PEM encoded certificate key. Use $file to load in a file.",
|
|
1783
|
+
"visibility": "secret",
|
|
1784
|
+
"type": "string"
|
|
1688
1785
|
}
|
|
1689
1786
|
},
|
|
1690
1787
|
"required": [
|
|
1691
|
-
"
|
|
1788
|
+
"cert",
|
|
1789
|
+
"key"
|
|
1692
1790
|
]
|
|
1693
|
-
},
|
|
1694
|
-
{
|
|
1695
|
-
"type": "object",
|
|
1696
|
-
"properties": {
|
|
1697
|
-
"type": {
|
|
1698
|
-
"type": "string",
|
|
1699
|
-
"const": "static"
|
|
1700
|
-
},
|
|
1701
|
-
"static": {
|
|
1702
|
-
"type": "object",
|
|
1703
|
-
"properties": {
|
|
1704
|
-
"keys": {
|
|
1705
|
-
"description": "Must be declared at least once and the first one will be used for signing.",
|
|
1706
|
-
"type": "array",
|
|
1707
|
-
"items": {
|
|
1708
|
-
"type": "object",
|
|
1709
|
-
"properties": {
|
|
1710
|
-
"publicKeyFile": {
|
|
1711
|
-
"description": "Path to the public key file in the SPKI format. Should be an absolute path.",
|
|
1712
|
-
"type": "string"
|
|
1713
|
-
},
|
|
1714
|
-
"privateKeyFile": {
|
|
1715
|
-
"description": "Path to the matching private key file in the PKCS#8 format. Should be an absolute path.\n\nThe first array entry must specify a private key file, the rest must not.",
|
|
1716
|
-
"type": "string"
|
|
1717
|
-
},
|
|
1718
|
-
"keyId": {
|
|
1719
|
-
"description": "ID to uniquely identify this key within the JWK set.",
|
|
1720
|
-
"type": "string"
|
|
1721
|
-
},
|
|
1722
|
-
"algorithm": {
|
|
1723
|
-
"description": "JWS \"alg\" (Algorithm) Header Parameter value. Defaults to ES256.\nMust match the algorithm used to generate the keys in the provided files",
|
|
1724
|
-
"type": "string"
|
|
1725
|
-
}
|
|
1726
|
-
},
|
|
1727
|
-
"required": [
|
|
1728
|
-
"keyId",
|
|
1729
|
-
"publicKeyFile"
|
|
1730
|
-
]
|
|
1731
|
-
}
|
|
1732
|
-
}
|
|
1733
|
-
},
|
|
1734
|
-
"required": [
|
|
1735
|
-
"keys"
|
|
1736
|
-
]
|
|
1737
|
-
}
|
|
1738
|
-
},
|
|
1739
|
-
"required": [
|
|
1740
|
-
"static",
|
|
1741
|
-
"type"
|
|
1742
|
-
]
|
|
1743
|
-
}
|
|
1744
|
-
]
|
|
1745
|
-
},
|
|
1746
|
-
"externalAccess": {
|
|
1747
|
-
"description": "Configures methods of external access, ie ways for callers outside of\nthe Backstage ecosystem to get authorized for access to APIs that do\nnot permit unauthorized access.",
|
|
1748
|
-
"type": "array",
|
|
1749
|
-
"items": {
|
|
1750
|
-
"anyOf": [
|
|
1751
|
-
{
|
|
1752
|
-
"type": "object",
|
|
1753
|
-
"properties": {
|
|
1754
|
-
"type": {
|
|
1755
|
-
"description": "This is the legacy service-to-service access method, where a set\nof static keys were shared among plugins and used for symmetric\nsigning and verification. These correspond to the old\n`backend.auth.keys` set and retain their behavior for backwards\ncompatibility. Please migrate to other access methods when\npossible.\n\nCallers generate JWT tokens with the following payload:\n\n```json\n{\n \"sub\": \"backstage-plugin\",\n \"exp\": <epoch seconds one hour in the future>\n}\n```\n\nAnd sign them with HS256, using the base64 decoded secret. The\ntokens are then passed along with requests in the Authorization\nheader:\n\n```\nAuthorization: Bearer eyJhbGciOiJIUzI...\n```",
|
|
1756
|
-
"type": "string",
|
|
1757
|
-
"const": "legacy"
|
|
1758
|
-
},
|
|
1759
|
-
"options": {
|
|
1760
|
-
"type": "object",
|
|
1761
|
-
"properties": {
|
|
1762
|
-
"secret": {
|
|
1763
|
-
"description": "Any set of base64 encoded random bytes to be used as both the\nsigning and verification key. Should be sufficiently long so as\nnot to be easy to guess by brute force.\n\nCan be generated eg using\n\n```sh\nnode -p 'require(\"crypto\").randomBytes(24).toString(\"base64\")'\n```",
|
|
1764
|
-
"visibility": "secret",
|
|
1765
|
-
"type": "string"
|
|
1766
|
-
},
|
|
1767
|
-
"subject": {
|
|
1768
|
-
"description": "Sets the subject of the principal, when matching this token.\nUseful for debugging and tracking purposes.",
|
|
1769
|
-
"type": "string"
|
|
1770
|
-
}
|
|
1771
|
-
},
|
|
1772
|
-
"required": [
|
|
1773
|
-
"secret",
|
|
1774
|
-
"subject"
|
|
1775
|
-
]
|
|
1776
|
-
},
|
|
1777
|
-
"accessRestrictions": {
|
|
1778
|
-
"description": "Restricts what types of access that are permitted for this access\nmethod. If no access restrictions are given, it'll have unlimited\naccess. This access restriction applies for the framework level;\nindividual plugins may have their own access control mechanisms\non top of this.",
|
|
1779
|
-
"type": "array",
|
|
1780
|
-
"items": {
|
|
1781
|
-
"type": "object",
|
|
1782
|
-
"properties": {
|
|
1783
|
-
"plugin": {
|
|
1784
|
-
"description": "Permit access to make requests to this plugin.\n\nCan be further refined by setting additional fields below.",
|
|
1785
|
-
"type": "string"
|
|
1786
|
-
},
|
|
1787
|
-
"permission": {
|
|
1788
|
-
"description": "If given, this method is limited to only performing actions\nwith these named permissions in this plugin.\n\nNote that this only applies where permissions checks are\nenabled in the first place. Endpoints that are not protected by\nthe permissions system at all, are not affected by this\nsetting.",
|
|
1789
|
-
"anyOf": [
|
|
1790
|
-
{
|
|
1791
|
-
"type": "array",
|
|
1792
|
-
"items": {
|
|
1793
|
-
"type": "string"
|
|
1794
|
-
}
|
|
1795
|
-
},
|
|
1796
|
-
{
|
|
1797
|
-
"type": "string"
|
|
1798
|
-
}
|
|
1799
|
-
]
|
|
1800
|
-
},
|
|
1801
|
-
"permissionAttribute": {
|
|
1802
|
-
"description": "If given, this method is limited to only performing actions\nwhose permissions have these attributes.\n\nNote that this only applies where permissions checks are\nenabled in the first place. Endpoints that are not protected by\nthe permissions system at all, are not affected by this\nsetting.",
|
|
1803
|
-
"type": "object",
|
|
1804
|
-
"properties": {
|
|
1805
|
-
"action": {
|
|
1806
|
-
"description": "One of more of 'create', 'read', 'update', or 'delete'.",
|
|
1807
|
-
"anyOf": [
|
|
1808
|
-
{
|
|
1809
|
-
"type": "array",
|
|
1810
|
-
"items": {
|
|
1811
|
-
"type": "string"
|
|
1812
|
-
}
|
|
1813
|
-
},
|
|
1814
|
-
{
|
|
1815
|
-
"type": "string"
|
|
1816
|
-
}
|
|
1817
|
-
]
|
|
1818
|
-
}
|
|
1819
|
-
}
|
|
1820
|
-
}
|
|
1821
|
-
},
|
|
1822
|
-
"required": [
|
|
1823
|
-
"plugin"
|
|
1824
|
-
]
|
|
1825
|
-
}
|
|
1826
|
-
}
|
|
1827
|
-
},
|
|
1828
|
-
"required": [
|
|
1829
|
-
"options",
|
|
1830
|
-
"type"
|
|
1831
|
-
]
|
|
1832
|
-
},
|
|
1833
|
-
{
|
|
1834
|
-
"type": "object",
|
|
1835
|
-
"properties": {
|
|
1836
|
-
"type": {
|
|
1837
|
-
"description": "This access method consists of random static tokens that can be\nhanded out to callers.\n\nThe tokens are then passed along verbatim with requests in the\nAuthorization header:\n\n```\nAuthorization: Bearer eZv5o+fW3KnR3kVabMW4ZcDNLPl8nmMW\n```",
|
|
1838
|
-
"type": "string",
|
|
1839
|
-
"const": "static"
|
|
1840
|
-
},
|
|
1841
|
-
"options": {
|
|
1842
|
-
"type": "object",
|
|
1843
|
-
"properties": {
|
|
1844
|
-
"token": {
|
|
1845
|
-
"description": "A raw token that can be any string, but for security reasons\nshould be sufficiently long so as not to be easy to guess by\nbrute force.\n\nCan be generated eg using\n\n```sh\nnode -p 'require(\"crypto\").randomBytes(24).toString(\"base64\")'\n```\n\nSince the tokens can be any string, you are free to add\nadditional identifying data to them if you like. For example,\nadding a `freben-local-dev-` prefix for debugging purposes to a\ntoken that you know will be handed out for use as a personal\naccess token during development.",
|
|
1846
|
-
"visibility": "secret",
|
|
1847
|
-
"type": "string"
|
|
1848
|
-
},
|
|
1849
|
-
"subject": {
|
|
1850
|
-
"description": "Sets the subject of the principal, when matching this token.\nUseful for debugging and tracking purposes.",
|
|
1851
|
-
"type": "string"
|
|
1852
|
-
}
|
|
1853
|
-
},
|
|
1854
|
-
"required": [
|
|
1855
|
-
"subject",
|
|
1856
|
-
"token"
|
|
1857
|
-
]
|
|
1858
|
-
},
|
|
1859
|
-
"accessRestrictions": {
|
|
1860
|
-
"description": "Restricts what types of access that are permitted for this access\nmethod. If no access restrictions are given, it'll have unlimited\naccess. This access restriction applies for the framework level;\nindividual plugins may have their own access control mechanisms\non top of this.",
|
|
1861
|
-
"type": "array",
|
|
1862
|
-
"items": {
|
|
1863
|
-
"type": "object",
|
|
1864
|
-
"properties": {
|
|
1865
|
-
"plugin": {
|
|
1866
|
-
"description": "Permit access to make requests to this plugin.\n\nCan be further refined by setting additional fields below.",
|
|
1867
|
-
"type": "string"
|
|
1868
|
-
},
|
|
1869
|
-
"permission": {
|
|
1870
|
-
"description": "If given, this method is limited to only performing actions\nwith these named permissions in this plugin.\n\nNote that this only applies where permissions checks are\nenabled in the first place. Endpoints that are not protected by\nthe permissions system at all, are not affected by this\nsetting.",
|
|
1871
|
-
"anyOf": [
|
|
1872
|
-
{
|
|
1873
|
-
"type": "array",
|
|
1874
|
-
"items": {
|
|
1875
|
-
"type": "string"
|
|
1876
|
-
}
|
|
1877
|
-
},
|
|
1878
|
-
{
|
|
1879
|
-
"type": "string"
|
|
1880
|
-
}
|
|
1881
|
-
]
|
|
1882
|
-
},
|
|
1883
|
-
"permissionAttribute": {
|
|
1884
|
-
"description": "If given, this method is limited to only performing actions\nwhose permissions have these attributes.\n\nNote that this only applies where permissions checks are\nenabled in the first place. Endpoints that are not protected by\nthe permissions system at all, are not affected by this\nsetting.",
|
|
1885
|
-
"type": "object",
|
|
1886
|
-
"properties": {
|
|
1887
|
-
"action": {
|
|
1888
|
-
"description": "One of more of 'create', 'read', 'update', or 'delete'.",
|
|
1889
|
-
"anyOf": [
|
|
1890
|
-
{
|
|
1891
|
-
"type": "array",
|
|
1892
|
-
"items": {
|
|
1893
|
-
"type": "string"
|
|
1894
|
-
}
|
|
1895
|
-
},
|
|
1896
|
-
{
|
|
1897
|
-
"type": "string"
|
|
1898
|
-
}
|
|
1899
|
-
]
|
|
1900
|
-
}
|
|
1901
|
-
}
|
|
1902
|
-
}
|
|
1903
|
-
},
|
|
1904
|
-
"required": [
|
|
1905
|
-
"plugin"
|
|
1906
|
-
]
|
|
1907
|
-
}
|
|
1908
|
-
}
|
|
1909
|
-
},
|
|
1910
|
-
"required": [
|
|
1911
|
-
"options",
|
|
1912
|
-
"type"
|
|
1913
|
-
]
|
|
1914
|
-
},
|
|
1915
|
-
{
|
|
1916
|
-
"type": "object",
|
|
1917
|
-
"properties": {
|
|
1918
|
-
"type": {
|
|
1919
|
-
"description": "This access method consists of a JWKS endpoint that can be used to\nverify JWT tokens.\n\nCallers generate JWT tokens via 3rd party tooling\nand pass them in the Authorization header:\n\n```\nAuthorization: Bearer eZv5o+fW3KnR3kVabMW4ZcDNLPl8nmMW\n```",
|
|
1920
|
-
"type": "string",
|
|
1921
|
-
"const": "jwks"
|
|
1922
|
-
},
|
|
1923
|
-
"options": {
|
|
1924
|
-
"type": "object",
|
|
1925
|
-
"properties": {
|
|
1926
|
-
"url": {
|
|
1927
|
-
"description": "The full URL of the JWKS endpoint.",
|
|
1928
|
-
"type": "string"
|
|
1929
|
-
},
|
|
1930
|
-
"algorithm": {
|
|
1931
|
-
"description": "Sets the algorithm(s) that should be used to verify the JWT tokens.\nThe passed JWTs must have been signed using one of the listed algorithms.",
|
|
1932
|
-
"anyOf": [
|
|
1933
|
-
{
|
|
1934
|
-
"type": "array",
|
|
1935
|
-
"items": {
|
|
1936
|
-
"type": "string"
|
|
1937
|
-
}
|
|
1938
|
-
},
|
|
1939
|
-
{
|
|
1940
|
-
"type": "string"
|
|
1941
|
-
}
|
|
1942
|
-
]
|
|
1943
|
-
},
|
|
1944
|
-
"issuer": {
|
|
1945
|
-
"description": "Sets the issuer(s) that should be used to verify the JWT tokens.\nPassed JWTs must have an `iss` claim which matches one of the specified issuers.",
|
|
1946
|
-
"anyOf": [
|
|
1947
|
-
{
|
|
1948
|
-
"type": "array",
|
|
1949
|
-
"items": {
|
|
1950
|
-
"type": "string"
|
|
1951
|
-
}
|
|
1952
|
-
},
|
|
1953
|
-
{
|
|
1954
|
-
"type": "string"
|
|
1955
|
-
}
|
|
1956
|
-
]
|
|
1957
|
-
},
|
|
1958
|
-
"audience": {
|
|
1959
|
-
"description": "Sets the audience(s) that should be used to verify the JWT tokens.\nThe passed JWTs must have an \"aud\" claim that matches one of the audiences specified,\nor have no audience specified.",
|
|
1960
|
-
"anyOf": [
|
|
1961
|
-
{
|
|
1962
|
-
"type": "array",
|
|
1963
|
-
"items": {
|
|
1964
|
-
"type": "string"
|
|
1965
|
-
}
|
|
1966
|
-
},
|
|
1967
|
-
{
|
|
1968
|
-
"type": "string"
|
|
1969
|
-
}
|
|
1970
|
-
]
|
|
1971
|
-
},
|
|
1972
|
-
"subjectPrefix": {
|
|
1973
|
-
"description": "Sets an optional subject prefix. Passes the subject to called plugins.\nUseful for debugging and tracking purposes.",
|
|
1974
|
-
"type": "string"
|
|
1975
|
-
}
|
|
1976
|
-
},
|
|
1977
|
-
"required": [
|
|
1978
|
-
"url"
|
|
1979
|
-
]
|
|
1980
|
-
}
|
|
1981
|
-
},
|
|
1982
|
-
"required": [
|
|
1983
|
-
"options",
|
|
1984
|
-
"type"
|
|
1985
|
-
]
|
|
1986
|
-
}
|
|
1987
|
-
]
|
|
1988
|
-
}
|
|
1989
|
-
}
|
|
1990
|
-
},
|
|
1991
|
-
"required": [
|
|
1992
|
-
"externalAccess"
|
|
1993
|
-
]
|
|
1994
|
-
},
|
|
1995
|
-
"packages": {
|
|
1996
|
-
"anyOf": [
|
|
1997
|
-
{
|
|
1998
|
-
"type": "object",
|
|
1999
|
-
"properties": {
|
|
2000
|
-
"include": {
|
|
2001
|
-
"type": "array",
|
|
2002
|
-
"items": {
|
|
2003
|
-
"type": "string"
|
|
2004
|
-
}
|
|
2005
|
-
},
|
|
2006
|
-
"exclude": {
|
|
2007
|
-
"type": "array",
|
|
2008
|
-
"items": {
|
|
2009
|
-
"type": "string"
|
|
2010
|
-
}
|
|
2011
|
-
}
|
|
2012
|
-
}
|
|
2013
|
-
},
|
|
2014
|
-
{
|
|
2015
|
-
"const": "all",
|
|
2016
|
-
"type": "string"
|
|
2017
|
-
}
|
|
2018
|
-
]
|
|
2019
|
-
}
|
|
2020
|
-
}
|
|
2021
|
-
},
|
|
2022
|
-
"discovery": {
|
|
2023
|
-
"description": "Discovery options.",
|
|
2024
|
-
"type": "object",
|
|
2025
|
-
"properties": {
|
|
2026
|
-
"endpoints": {
|
|
2027
|
-
"description": "Endpoints\n\nA list of target baseUrls and the associated plugins.",
|
|
2028
|
-
"type": "array",
|
|
2029
|
-
"items": {
|
|
2030
|
-
"type": "object",
|
|
2031
|
-
"properties": {
|
|
2032
|
-
"target": {
|
|
2033
|
-
"description": "The target baseUrl to use for the plugin\n\nCan be either a string or an object with internal and external keys.\nTargets with `{{pluginId}}` or `{{ pluginId }} in the url will be replaced with the pluginId.",
|
|
2034
|
-
"anyOf": [
|
|
2035
|
-
{
|
|
2036
|
-
"type": "object",
|
|
2037
|
-
"properties": {
|
|
2038
|
-
"internal": {
|
|
2039
|
-
"type": "string"
|
|
2040
|
-
},
|
|
2041
|
-
"external": {
|
|
2042
|
-
"type": "string"
|
|
2043
|
-
}
|
|
2044
|
-
},
|
|
2045
|
-
"required": [
|
|
2046
|
-
"external",
|
|
2047
|
-
"internal"
|
|
2048
|
-
]
|
|
2049
|
-
},
|
|
2050
|
-
{
|
|
2051
|
-
"type": "string"
|
|
2052
|
-
}
|
|
2053
|
-
]
|
|
2054
|
-
},
|
|
2055
|
-
"plugins": {
|
|
2056
|
-
"description": "Array of plugins which use the target baseUrl.",
|
|
2057
|
-
"type": "array",
|
|
2058
|
-
"items": {
|
|
2059
|
-
"type": "string"
|
|
2060
1791
|
}
|
|
2061
1792
|
}
|
|
2062
1793
|
},
|
|
2063
|
-
|
|
2064
|
-
"
|
|
2065
|
-
"
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
-
}
|
|
2069
|
-
},
|
|
2070
|
-
"required": [
|
|
2071
|
-
"endpoints"
|
|
2072
|
-
]
|
|
2073
|
-
}
|
|
2074
|
-
},
|
|
2075
|
-
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
2076
|
-
}
|
|
2077
|
-
},
|
|
2078
|
-
{
|
|
2079
|
-
"path": "../backend-defaults/config.d.ts",
|
|
2080
|
-
"value": {
|
|
2081
|
-
"type": "object",
|
|
2082
|
-
"properties": {
|
|
2083
|
-
"backend": {
|
|
2084
|
-
"type": "object",
|
|
2085
|
-
"properties": {
|
|
1794
|
+
{
|
|
1795
|
+
"const": true,
|
|
1796
|
+
"type": "boolean"
|
|
1797
|
+
}
|
|
1798
|
+
]
|
|
1799
|
+
},
|
|
2086
1800
|
"auth": {
|
|
2087
1801
|
"description": "Options used by the default auth, httpAuth and userInfo services.",
|
|
2088
1802
|
"type": "object",
|
|
@@ -2452,12 +2166,12 @@
|
|
|
2452
2166
|
]
|
|
2453
2167
|
}
|
|
2454
2168
|
}
|
|
2455
|
-
}
|
|
2456
|
-
"required": [
|
|
2457
|
-
"externalAccess"
|
|
2458
|
-
]
|
|
2169
|
+
}
|
|
2459
2170
|
}
|
|
2460
|
-
}
|
|
2171
|
+
},
|
|
2172
|
+
"required": [
|
|
2173
|
+
"baseUrl"
|
|
2174
|
+
]
|
|
2461
2175
|
},
|
|
2462
2176
|
"discovery": {
|
|
2463
2177
|
"description": "Options used by the default discovery service.",
|
|
@@ -2510,8 +2224,322 @@
|
|
|
2510
2224
|
"required": [
|
|
2511
2225
|
"endpoints"
|
|
2512
2226
|
]
|
|
2227
|
+
},
|
|
2228
|
+
"database": {
|
|
2229
|
+
"description": "Database connection configuration, select base database type using the `client` field",
|
|
2230
|
+
"type": "object",
|
|
2231
|
+
"properties": {
|
|
2232
|
+
"client": {
|
|
2233
|
+
"description": "Default database client to use",
|
|
2234
|
+
"enum": [
|
|
2235
|
+
"better-sqlite3",
|
|
2236
|
+
"pg",
|
|
2237
|
+
"sqlite3"
|
|
2238
|
+
],
|
|
2239
|
+
"type": "string"
|
|
2240
|
+
},
|
|
2241
|
+
"connection": {
|
|
2242
|
+
"description": "Base database connection string, or object with individual connection properties",
|
|
2243
|
+
"visibility": "secret",
|
|
2244
|
+
"anyOf": [
|
|
2245
|
+
{
|
|
2246
|
+
"type": "object",
|
|
2247
|
+
"additionalProperties": {},
|
|
2248
|
+
"properties": {
|
|
2249
|
+
"password": {
|
|
2250
|
+
"description": "Password that belongs to the client User",
|
|
2251
|
+
"visibility": "secret",
|
|
2252
|
+
"type": "string"
|
|
2253
|
+
}
|
|
2254
|
+
}
|
|
2255
|
+
},
|
|
2256
|
+
{
|
|
2257
|
+
"type": "string"
|
|
2258
|
+
}
|
|
2259
|
+
]
|
|
2260
|
+
},
|
|
2261
|
+
"prefix": {
|
|
2262
|
+
"description": "Database name prefix override",
|
|
2263
|
+
"type": "string"
|
|
2264
|
+
},
|
|
2265
|
+
"ensureExists": {
|
|
2266
|
+
"description": "Whether to ensure the given database exists by creating it if it does not.\nDefaults to true if unspecified.",
|
|
2267
|
+
"type": "boolean"
|
|
2268
|
+
},
|
|
2269
|
+
"ensureSchemaExists": {
|
|
2270
|
+
"description": "Whether to ensure the given database schema exists by creating it if it does not.\nDefaults to false if unspecified.\n\nNOTE: Currently only supported by the `pg` client when pluginDivisionMode: schema",
|
|
2271
|
+
"type": "boolean"
|
|
2272
|
+
},
|
|
2273
|
+
"pluginDivisionMode": {
|
|
2274
|
+
"description": "How plugins databases are managed/divided in the provided database instance.\n\n`database` -> Plugins are each given their own database to manage their schemas/tables.\n\n`schema` -> Plugins will be given their own schema (in the specified/default database)\n to manage their tables.\n\nNOTE: Currently only supported by the `pg` client.",
|
|
2275
|
+
"default": "database",
|
|
2276
|
+
"enum": [
|
|
2277
|
+
"database",
|
|
2278
|
+
"schema"
|
|
2279
|
+
],
|
|
2280
|
+
"type": "string"
|
|
2281
|
+
},
|
|
2282
|
+
"role": {
|
|
2283
|
+
"description": "Configures the ownership of newly created schemas in pg databases.",
|
|
2284
|
+
"type": "string"
|
|
2285
|
+
},
|
|
2286
|
+
"knexConfig": {
|
|
2287
|
+
"description": "Arbitrary config object to pass to knex when initializing\n(https://knexjs.org/#Installation-client). Most notable is the debug\nand asyncStackTraces booleans",
|
|
2288
|
+
"type": "object",
|
|
2289
|
+
"properties": {},
|
|
2290
|
+
"additionalProperties": true
|
|
2291
|
+
},
|
|
2292
|
+
"skipMigrations": {
|
|
2293
|
+
"description": "Skip running database migrations.",
|
|
2294
|
+
"type": "boolean"
|
|
2295
|
+
},
|
|
2296
|
+
"plugin": {
|
|
2297
|
+
"description": "Plugin specific database configuration and client override",
|
|
2298
|
+
"type": "object",
|
|
2299
|
+
"additionalProperties": {
|
|
2300
|
+
"type": "object",
|
|
2301
|
+
"properties": {
|
|
2302
|
+
"client": {
|
|
2303
|
+
"description": "Database client override",
|
|
2304
|
+
"enum": [
|
|
2305
|
+
"better-sqlite3",
|
|
2306
|
+
"pg",
|
|
2307
|
+
"sqlite3"
|
|
2308
|
+
],
|
|
2309
|
+
"type": "string"
|
|
2310
|
+
},
|
|
2311
|
+
"connection": {
|
|
2312
|
+
"description": "Database connection string or Knex object override",
|
|
2313
|
+
"visibility": "secret",
|
|
2314
|
+
"anyOf": [
|
|
2315
|
+
{
|
|
2316
|
+
"type": "object",
|
|
2317
|
+
"properties": {},
|
|
2318
|
+
"additionalProperties": true
|
|
2319
|
+
},
|
|
2320
|
+
{
|
|
2321
|
+
"type": "string"
|
|
2322
|
+
}
|
|
2323
|
+
]
|
|
2324
|
+
},
|
|
2325
|
+
"ensureExists": {
|
|
2326
|
+
"description": "Whether to ensure the given database exists by creating it if it does not.\nDefaults to base config if unspecified.",
|
|
2327
|
+
"type": "boolean"
|
|
2328
|
+
},
|
|
2329
|
+
"ensureSchemaExists": {
|
|
2330
|
+
"description": "Whether to ensure the given database schema exists by creating it if it does not.\nDefaults to false if unspecified.\n\nNOTE: Currently only supported by the `pg` client when pluginDivisionMode: schema",
|
|
2331
|
+
"type": "boolean"
|
|
2332
|
+
},
|
|
2333
|
+
"knexConfig": {
|
|
2334
|
+
"description": "Arbitrary config object to pass to knex when initializing\n(https://knexjs.org/#Installation-client). Most notable is the\ndebug and asyncStackTraces booleans.\n\nThis is merged recursively into the base knexConfig",
|
|
2335
|
+
"type": "object",
|
|
2336
|
+
"properties": {},
|
|
2337
|
+
"additionalProperties": true
|
|
2338
|
+
},
|
|
2339
|
+
"role": {
|
|
2340
|
+
"description": "Configures the ownership of newly created schemas in pg databases.",
|
|
2341
|
+
"type": "string"
|
|
2342
|
+
},
|
|
2343
|
+
"skipMigrations": {
|
|
2344
|
+
"description": "Skip running database migrations.",
|
|
2345
|
+
"type": "boolean"
|
|
2346
|
+
}
|
|
2347
|
+
}
|
|
2348
|
+
}
|
|
2349
|
+
}
|
|
2350
|
+
},
|
|
2351
|
+
"required": [
|
|
2352
|
+
"client",
|
|
2353
|
+
"connection"
|
|
2354
|
+
]
|
|
2355
|
+
},
|
|
2356
|
+
"cache": {
|
|
2357
|
+
"description": "Cache connection configuration, select cache type using the `store` field",
|
|
2358
|
+
"anyOf": [
|
|
2359
|
+
{
|
|
2360
|
+
"type": "object",
|
|
2361
|
+
"properties": {
|
|
2362
|
+
"store": {
|
|
2363
|
+
"type": "string",
|
|
2364
|
+
"const": "memory"
|
|
2365
|
+
},
|
|
2366
|
+
"defaultTtl": {
|
|
2367
|
+
"description": "An optional default TTL (in milliseconds)."
|
|
2368
|
+
}
|
|
2369
|
+
},
|
|
2370
|
+
"required": [
|
|
2371
|
+
"store"
|
|
2372
|
+
]
|
|
2373
|
+
},
|
|
2374
|
+
{
|
|
2375
|
+
"type": "object",
|
|
2376
|
+
"properties": {
|
|
2377
|
+
"store": {
|
|
2378
|
+
"type": "string",
|
|
2379
|
+
"const": "redis"
|
|
2380
|
+
},
|
|
2381
|
+
"connection": {
|
|
2382
|
+
"description": "A redis connection string in the form `redis://user:pass@host:port`.",
|
|
2383
|
+
"visibility": "secret",
|
|
2384
|
+
"type": "string"
|
|
2385
|
+
},
|
|
2386
|
+
"defaultTtl": {
|
|
2387
|
+
"description": "An optional default TTL (in milliseconds)."
|
|
2388
|
+
},
|
|
2389
|
+
"useRedisSets": {
|
|
2390
|
+
"description": "Whether or not [useRedisSets](https://github.com/jaredwray/keyv/tree/main/packages/redis#useredissets) should be configured to this redis cache.\nDefaults to true if unspecified.",
|
|
2391
|
+
"type": "boolean"
|
|
2392
|
+
}
|
|
2393
|
+
},
|
|
2394
|
+
"required": [
|
|
2395
|
+
"connection",
|
|
2396
|
+
"store"
|
|
2397
|
+
]
|
|
2398
|
+
},
|
|
2399
|
+
{
|
|
2400
|
+
"type": "object",
|
|
2401
|
+
"properties": {
|
|
2402
|
+
"store": {
|
|
2403
|
+
"type": "string",
|
|
2404
|
+
"const": "memcache"
|
|
2405
|
+
},
|
|
2406
|
+
"connection": {
|
|
2407
|
+
"description": "A memcache connection string in the form `user:pass@host:port`.",
|
|
2408
|
+
"visibility": "secret",
|
|
2409
|
+
"type": "string"
|
|
2410
|
+
},
|
|
2411
|
+
"defaultTtl": {
|
|
2412
|
+
"description": "An optional default TTL (in milliseconds)."
|
|
2413
|
+
}
|
|
2414
|
+
},
|
|
2415
|
+
"required": [
|
|
2416
|
+
"connection",
|
|
2417
|
+
"store"
|
|
2418
|
+
]
|
|
2419
|
+
}
|
|
2420
|
+
]
|
|
2421
|
+
},
|
|
2422
|
+
"cors": {
|
|
2423
|
+
"type": "object",
|
|
2424
|
+
"properties": {
|
|
2425
|
+
"origin": {
|
|
2426
|
+
"anyOf": [
|
|
2427
|
+
{
|
|
2428
|
+
"type": "array",
|
|
2429
|
+
"items": {
|
|
2430
|
+
"type": "string"
|
|
2431
|
+
}
|
|
2432
|
+
},
|
|
2433
|
+
{
|
|
2434
|
+
"type": "string"
|
|
2435
|
+
}
|
|
2436
|
+
]
|
|
2437
|
+
},
|
|
2438
|
+
"methods": {
|
|
2439
|
+
"anyOf": [
|
|
2440
|
+
{
|
|
2441
|
+
"type": "array",
|
|
2442
|
+
"items": {
|
|
2443
|
+
"type": "string"
|
|
2444
|
+
}
|
|
2445
|
+
},
|
|
2446
|
+
{
|
|
2447
|
+
"type": "string"
|
|
2448
|
+
}
|
|
2449
|
+
]
|
|
2450
|
+
},
|
|
2451
|
+
"allowedHeaders": {
|
|
2452
|
+
"anyOf": [
|
|
2453
|
+
{
|
|
2454
|
+
"type": "array",
|
|
2455
|
+
"items": {
|
|
2456
|
+
"type": "string"
|
|
2457
|
+
}
|
|
2458
|
+
},
|
|
2459
|
+
{
|
|
2460
|
+
"type": "string"
|
|
2461
|
+
}
|
|
2462
|
+
]
|
|
2463
|
+
},
|
|
2464
|
+
"exposedHeaders": {
|
|
2465
|
+
"anyOf": [
|
|
2466
|
+
{
|
|
2467
|
+
"type": "array",
|
|
2468
|
+
"items": {
|
|
2469
|
+
"type": "string"
|
|
2470
|
+
}
|
|
2471
|
+
},
|
|
2472
|
+
{
|
|
2473
|
+
"type": "string"
|
|
2474
|
+
}
|
|
2475
|
+
]
|
|
2476
|
+
},
|
|
2477
|
+
"credentials": {
|
|
2478
|
+
"type": "boolean"
|
|
2479
|
+
},
|
|
2480
|
+
"maxAge": {
|
|
2481
|
+
"type": "number"
|
|
2482
|
+
},
|
|
2483
|
+
"preflightContinue": {
|
|
2484
|
+
"type": "boolean"
|
|
2485
|
+
},
|
|
2486
|
+
"optionsSuccessStatus": {
|
|
2487
|
+
"type": "number"
|
|
2488
|
+
}
|
|
2489
|
+
}
|
|
2490
|
+
},
|
|
2491
|
+
"csp": {
|
|
2492
|
+
"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.",
|
|
2493
|
+
"type": "object",
|
|
2494
|
+
"additionalProperties": {
|
|
2495
|
+
"anyOf": [
|
|
2496
|
+
{
|
|
2497
|
+
"type": "array",
|
|
2498
|
+
"items": {
|
|
2499
|
+
"type": "string"
|
|
2500
|
+
}
|
|
2501
|
+
},
|
|
2502
|
+
{
|
|
2503
|
+
"const": false,
|
|
2504
|
+
"type": "boolean"
|
|
2505
|
+
}
|
|
2506
|
+
]
|
|
2507
|
+
}
|
|
2508
|
+
},
|
|
2509
|
+
"reading": {
|
|
2510
|
+
"description": "Configuration related to URL reading, used for example for reading catalog info\nfiles, scaffolder templates, and techdocs content.",
|
|
2511
|
+
"type": "object",
|
|
2512
|
+
"properties": {
|
|
2513
|
+
"allow": {
|
|
2514
|
+
"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.",
|
|
2515
|
+
"type": "array",
|
|
2516
|
+
"items": {
|
|
2517
|
+
"type": "object",
|
|
2518
|
+
"properties": {
|
|
2519
|
+
"host": {
|
|
2520
|
+
"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`.",
|
|
2521
|
+
"type": "string"
|
|
2522
|
+
},
|
|
2523
|
+
"paths": {
|
|
2524
|
+
"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`.",
|
|
2525
|
+
"type": "array",
|
|
2526
|
+
"items": {
|
|
2527
|
+
"type": "string"
|
|
2528
|
+
}
|
|
2529
|
+
}
|
|
2530
|
+
},
|
|
2531
|
+
"required": [
|
|
2532
|
+
"host"
|
|
2533
|
+
]
|
|
2534
|
+
}
|
|
2535
|
+
}
|
|
2536
|
+
}
|
|
2513
2537
|
}
|
|
2514
2538
|
},
|
|
2539
|
+
"required": [
|
|
2540
|
+
"app",
|
|
2541
|
+
"database"
|
|
2542
|
+
],
|
|
2515
2543
|
"$schema": "http://json-schema.org/draft-07/schema#"
|
|
2516
2544
|
}
|
|
2517
2545
|
}
|