@backstage/backend-defaults 0.3.0-next.2 → 0.3.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 +62 -0
- package/auth/package.json +6 -0
- package/cache/package.json +1 -1
- package/config.d.ts +277 -0
- package/database/package.json +1 -1
- package/discovery/package.json +1 -1
- package/dist/auth.cjs.js +1025 -0
- package/dist/auth.cjs.js.map +1 -0
- package/dist/auth.d.ts +14 -0
- package/dist/cache.cjs.js.map +1 -1
- package/dist/cache.d.ts +31 -37
- package/dist/cjs/config-BDOwXIyo.cjs.js +64 -0
- package/dist/cjs/config-BDOwXIyo.cjs.js.map +1 -0
- package/dist/cjs/createConfigSecretEnumerator-DShyoWWL.cjs.js +33 -0
- package/dist/cjs/createConfigSecretEnumerator-DShyoWWL.cjs.js.map +1 -0
- package/dist/cjs/helpers-D2f1CG0o.cjs.js +53 -0
- package/dist/cjs/helpers-D2f1CG0o.cjs.js.map +1 -0
- package/dist/database.cjs.js +59 -145
- package/dist/database.cjs.js.map +1 -1
- package/dist/database.d.ts +7 -2
- package/dist/discovery.cjs.js +6 -6
- package/dist/discovery.cjs.js.map +1 -1
- package/dist/discovery.d.ts +9 -1
- package/dist/httpAuth.cjs.js +192 -0
- package/dist/httpAuth.cjs.js.map +1 -0
- package/dist/httpAuth.d.ts +15 -0
- package/dist/httpRouter.cjs.js +191 -0
- package/dist/httpRouter.cjs.js.map +1 -0
- package/dist/httpRouter.d.ts +55 -0
- package/dist/index.cjs.js +14 -8
- package/dist/index.cjs.js.map +1 -1
- package/dist/lifecycle.cjs.js.map +1 -1
- package/dist/lifecycle.d.ts +5 -1
- package/dist/logger.cjs.js +17 -0
- package/dist/logger.cjs.js.map +1 -0
- package/dist/logger.d.ts +14 -0
- package/dist/permissions.cjs.js.map +1 -1
- package/dist/permissions.d.ts +6 -0
- package/dist/rootConfig.cjs.js +3 -0
- package/dist/rootConfig.cjs.js.map +1 -1
- package/dist/rootConfig.d.ts +17 -2
- package/dist/rootHttpRouter.cjs.js +629 -0
- package/dist/rootHttpRouter.cjs.js.map +1 -0
- package/dist/rootHttpRouter.d.ts +283 -0
- package/dist/rootLifecycle.cjs.js.map +1 -1
- package/dist/rootLifecycle.d.ts +5 -1
- package/dist/rootLogger.cjs.js +143 -0
- package/dist/rootLogger.cjs.js.map +1 -0
- package/dist/rootLogger.d.ts +58 -0
- package/dist/scheduler.cjs.js +11 -40
- package/dist/scheduler.cjs.js.map +1 -1
- package/dist/scheduler.d.ts +19 -2
- package/dist/urlReader.cjs.js +2932 -2
- package/dist/urlReader.cjs.js.map +1 -1
- package/dist/urlReader.d.ts +422 -4
- package/dist/userInfo.cjs.js +70 -0
- package/dist/userInfo.cjs.js.map +1 -0
- package/dist/userInfo.d.ts +14 -0
- package/httpAuth/package.json +6 -0
- package/httpRouter/package.json +6 -0
- package/lifecycle/package.json +1 -1
- package/logger/package.json +6 -0
- package/migrations/auth/20240327104803_public_keys.js +50 -0
- package/package.json +103 -11
- package/permissions/package.json +1 -1
- package/rootConfig/package.json +1 -1
- package/rootHttpRouter/package.json +6 -0
- package/rootLifecycle/package.json +1 -1
- package/rootLogger/package.json +6 -0
- package/scheduler/package.json +1 -1
- package/urlReader/package.json +1 -1
- package/userInfo/package.json +6 -0
package/dist/database.cjs.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var backendCommon = require('@backstage/backend-common');
|
|
4
3
|
var backendPluginApi = require('@backstage/backend-plugin-api');
|
|
5
4
|
var config = require('@backstage/config');
|
|
6
5
|
var errors = require('@backstage/errors');
|
|
@@ -9,39 +8,15 @@ var lodash = require('lodash');
|
|
|
9
8
|
var limiterFactory = require('p-limit');
|
|
10
9
|
var yn = require('yn');
|
|
11
10
|
var backendDevUtils = require('@backstage/backend-dev-utils');
|
|
12
|
-
var
|
|
13
|
-
var
|
|
11
|
+
var fs = require('fs-extra');
|
|
12
|
+
var platformPath = require('path');
|
|
14
13
|
|
|
15
14
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
16
15
|
|
|
17
16
|
var knexFactory__default = /*#__PURE__*/_interopDefaultCompat(knexFactory);
|
|
18
17
|
var limiterFactory__default = /*#__PURE__*/_interopDefaultCompat(limiterFactory);
|
|
19
18
|
var yn__default = /*#__PURE__*/_interopDefaultCompat(yn);
|
|
20
|
-
var
|
|
21
|
-
|
|
22
|
-
const databaseServiceFactory = backendPluginApi.createServiceFactory({
|
|
23
|
-
service: backendPluginApi.coreServices.database,
|
|
24
|
-
deps: {
|
|
25
|
-
config: backendPluginApi.coreServices.rootConfig,
|
|
26
|
-
lifecycle: backendPluginApi.coreServices.lifecycle,
|
|
27
|
-
pluginMetadata: backendPluginApi.coreServices.pluginMetadata
|
|
28
|
-
},
|
|
29
|
-
async createRootContext({ config: config$1 }) {
|
|
30
|
-
return config$1.getOptional("backend.database") ? backendCommon.DatabaseManager.fromConfig(config$1) : backendCommon.DatabaseManager.fromConfig(
|
|
31
|
-
new config.ConfigReader({
|
|
32
|
-
backend: {
|
|
33
|
-
database: { client: "better-sqlite3", connection: ":memory:" }
|
|
34
|
-
}
|
|
35
|
-
})
|
|
36
|
-
);
|
|
37
|
-
},
|
|
38
|
-
async factory({ pluginMetadata, lifecycle }, databaseManager) {
|
|
39
|
-
return databaseManager.forPlugin(pluginMetadata.getId(), {
|
|
40
|
-
pluginMetadata,
|
|
41
|
-
lifecycle
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
});
|
|
19
|
+
var platformPath__default = /*#__PURE__*/_interopDefaultCompat(platformPath);
|
|
45
20
|
|
|
46
21
|
function defaultNameOverride(name) {
|
|
47
22
|
return {
|
|
@@ -174,45 +149,28 @@ async function dropMysqlDatabase(dbConfig, ...databases) {
|
|
|
174
149
|
await admin.destroy();
|
|
175
150
|
}
|
|
176
151
|
}
|
|
177
|
-
const mysqlConnector = Object.freeze({
|
|
178
|
-
createClient: createMysqlDatabaseClient,
|
|
179
|
-
ensureDatabaseExists: ensureMysqlDatabaseExists,
|
|
180
|
-
createNameOverride: defaultNameOverride,
|
|
181
|
-
parseConnectionString: parseMysqlConnectionString,
|
|
182
|
-
dropDatabase: dropMysqlDatabase
|
|
183
|
-
});
|
|
184
152
|
function pluginPath$3(pluginId) {
|
|
185
153
|
return `plugin.${pluginId}`;
|
|
186
154
|
}
|
|
187
|
-
function normalizeConnection$2(connection
|
|
155
|
+
function normalizeConnection$2(connection) {
|
|
188
156
|
if (typeof connection === "undefined" || connection === null) {
|
|
189
157
|
return {};
|
|
190
158
|
}
|
|
191
|
-
return typeof connection === "string" || connection instanceof String ?
|
|
192
|
-
}
|
|
193
|
-
function createNameOverride$2(client, name) {
|
|
194
|
-
try {
|
|
195
|
-
return mysqlConnector.createNameOverride(name);
|
|
196
|
-
} catch (e) {
|
|
197
|
-
throw new errors.InputError(
|
|
198
|
-
`Unable to create database name override for '${client}' connector`,
|
|
199
|
-
e
|
|
200
|
-
);
|
|
201
|
-
}
|
|
159
|
+
return typeof connection === "string" || connection instanceof String ? parseMysqlConnectionString(connection) : connection;
|
|
202
160
|
}
|
|
203
161
|
class MysqlConnector {
|
|
204
162
|
constructor(config, prefix) {
|
|
205
163
|
this.config = config;
|
|
206
164
|
this.prefix = prefix;
|
|
207
165
|
}
|
|
208
|
-
async getClient(pluginId,
|
|
166
|
+
async getClient(pluginId, _deps) {
|
|
209
167
|
const pluginConfig = new config.ConfigReader(
|
|
210
168
|
this.getConfigForPlugin(pluginId)
|
|
211
169
|
);
|
|
212
170
|
const databaseName = this.getDatabaseName(pluginId);
|
|
213
171
|
if (databaseName && this.getEnsureExistsConfig(pluginId)) {
|
|
214
172
|
try {
|
|
215
|
-
await
|
|
173
|
+
await ensureMysqlDatabaseExists(pluginConfig, databaseName);
|
|
216
174
|
} catch (error) {
|
|
217
175
|
throw new Error(
|
|
218
176
|
`Failed to connect to the database to make sure that '${databaseName}' exists, ${error}`
|
|
@@ -229,10 +187,9 @@ class MysqlConnector {
|
|
|
229
187
|
{},
|
|
230
188
|
this.getDatabaseOverrides(pluginId)
|
|
231
189
|
);
|
|
232
|
-
const client =
|
|
190
|
+
const client = createMysqlDatabaseClient(
|
|
233
191
|
pluginConfig,
|
|
234
|
-
databaseClientOverrides
|
|
235
|
-
deps
|
|
192
|
+
databaseClientOverrides
|
|
236
193
|
);
|
|
237
194
|
return client;
|
|
238
195
|
}
|
|
@@ -309,17 +266,13 @@ class MysqlConnector {
|
|
|
309
266
|
* unless `pluginDivisionMode` is set to `schema`.
|
|
310
267
|
*/
|
|
311
268
|
getConnectionConfig(pluginId) {
|
|
312
|
-
const {
|
|
313
|
-
let baseConnection = normalizeConnection$2(
|
|
314
|
-
this.config.get("connection"),
|
|
315
|
-
this.config.getString("client")
|
|
316
|
-
);
|
|
269
|
+
const { overridden } = this.getClientType(pluginId);
|
|
270
|
+
let baseConnection = normalizeConnection$2(this.config.get("connection"));
|
|
317
271
|
if (this.getPluginDivisionModeConfig() !== "schema") {
|
|
318
272
|
baseConnection = lodash.omit(baseConnection, "database");
|
|
319
273
|
}
|
|
320
274
|
const connection = normalizeConnection$2(
|
|
321
|
-
this.config.getOptional(`${pluginPath$3(pluginId)}.connection`)
|
|
322
|
-
client
|
|
275
|
+
this.config.getOptional(`${pluginPath$3(pluginId)}.connection`)
|
|
323
276
|
);
|
|
324
277
|
return {
|
|
325
278
|
// include base connection if client type has not been overridden
|
|
@@ -353,7 +306,7 @@ class MysqlConnector {
|
|
|
353
306
|
*/
|
|
354
307
|
getDatabaseOverrides(pluginId) {
|
|
355
308
|
const databaseName = this.getDatabaseName(pluginId);
|
|
356
|
-
return databaseName ?
|
|
309
|
+
return databaseName ? defaultNameOverride(databaseName) : {};
|
|
357
310
|
}
|
|
358
311
|
}
|
|
359
312
|
|
|
@@ -475,57 +428,28 @@ async function dropPgDatabase(dbConfig, ...databases) {
|
|
|
475
428
|
await admin.destroy();
|
|
476
429
|
}
|
|
477
430
|
}
|
|
478
|
-
const pgConnector = Object.freeze({
|
|
479
|
-
createClient: createPgDatabaseClient,
|
|
480
|
-
ensureDatabaseExists: ensurePgDatabaseExists,
|
|
481
|
-
ensureSchemaExists: ensurePgSchemaExists,
|
|
482
|
-
createNameOverride: defaultNameOverride,
|
|
483
|
-
createSchemaOverride: defaultSchemaOverride,
|
|
484
|
-
parseConnectionString: parsePgConnectionString,
|
|
485
|
-
dropDatabase: dropPgDatabase
|
|
486
|
-
});
|
|
487
431
|
function pluginPath$2(pluginId) {
|
|
488
432
|
return `plugin.${pluginId}`;
|
|
489
433
|
}
|
|
490
|
-
function normalizeConnection$1(connection
|
|
434
|
+
function normalizeConnection$1(connection) {
|
|
491
435
|
if (typeof connection === "undefined" || connection === null) {
|
|
492
436
|
return {};
|
|
493
437
|
}
|
|
494
|
-
return typeof connection === "string" || connection instanceof String ?
|
|
495
|
-
}
|
|
496
|
-
function createSchemaOverride(client, name) {
|
|
497
|
-
try {
|
|
498
|
-
return pgConnector.createSchemaOverride?.(name);
|
|
499
|
-
} catch (e) {
|
|
500
|
-
throw new errors.InputError(
|
|
501
|
-
`Unable to create database schema override for '${client}' connector`,
|
|
502
|
-
e
|
|
503
|
-
);
|
|
504
|
-
}
|
|
505
|
-
}
|
|
506
|
-
function createNameOverride$1(client, name) {
|
|
507
|
-
try {
|
|
508
|
-
return pgConnector.createNameOverride(name);
|
|
509
|
-
} catch (e) {
|
|
510
|
-
throw new errors.InputError(
|
|
511
|
-
`Unable to create database name override for '${client}' connector`,
|
|
512
|
-
e
|
|
513
|
-
);
|
|
514
|
-
}
|
|
438
|
+
return typeof connection === "string" || connection instanceof String ? parsePgConnectionString(connection) : connection;
|
|
515
439
|
}
|
|
516
440
|
class PgConnector {
|
|
517
441
|
constructor(config, prefix) {
|
|
518
442
|
this.config = config;
|
|
519
443
|
this.prefix = prefix;
|
|
520
444
|
}
|
|
521
|
-
async getClient(pluginId,
|
|
445
|
+
async getClient(pluginId, _deps) {
|
|
522
446
|
const pluginConfig = new config.ConfigReader(
|
|
523
447
|
this.getConfigForPlugin(pluginId)
|
|
524
448
|
);
|
|
525
449
|
const databaseName = this.getDatabaseName(pluginId);
|
|
526
450
|
if (databaseName && this.getEnsureExistsConfig(pluginId)) {
|
|
527
451
|
try {
|
|
528
|
-
await
|
|
452
|
+
await ensurePgDatabaseExists(pluginConfig, databaseName);
|
|
529
453
|
} catch (error) {
|
|
530
454
|
throw new Error(
|
|
531
455
|
`Failed to connect to the database to make sure that '${databaseName}' exists, ${error}`
|
|
@@ -534,10 +458,10 @@ class PgConnector {
|
|
|
534
458
|
}
|
|
535
459
|
let schemaOverrides;
|
|
536
460
|
if (this.getPluginDivisionModeConfig() === "schema") {
|
|
537
|
-
schemaOverrides =
|
|
461
|
+
schemaOverrides = defaultSchemaOverride(pluginId);
|
|
538
462
|
if (this.getEnsureSchemaExistsConfig(pluginId) || this.getEnsureExistsConfig(pluginId)) {
|
|
539
463
|
try {
|
|
540
|
-
await
|
|
464
|
+
await ensurePgSchemaExists(pluginConfig, pluginId);
|
|
541
465
|
} catch (error) {
|
|
542
466
|
throw new Error(
|
|
543
467
|
`Failed to connect to the database to make sure that schema for plugin '${pluginId}' exists, ${error}`
|
|
@@ -550,10 +474,9 @@ class PgConnector {
|
|
|
550
474
|
this.getDatabaseOverrides(pluginId),
|
|
551
475
|
schemaOverrides
|
|
552
476
|
);
|
|
553
|
-
const client =
|
|
477
|
+
const client = createPgDatabaseClient(
|
|
554
478
|
pluginConfig,
|
|
555
|
-
databaseClientOverrides
|
|
556
|
-
deps
|
|
479
|
+
databaseClientOverrides
|
|
557
480
|
);
|
|
558
481
|
return client;
|
|
559
482
|
}
|
|
@@ -640,17 +563,13 @@ class PgConnector {
|
|
|
640
563
|
* unless `pluginDivisionMode` is set to `schema`.
|
|
641
564
|
*/
|
|
642
565
|
getConnectionConfig(pluginId) {
|
|
643
|
-
const {
|
|
644
|
-
let baseConnection = normalizeConnection$1(
|
|
645
|
-
this.config.get("connection"),
|
|
646
|
-
this.config.getString("client")
|
|
647
|
-
);
|
|
566
|
+
const { overridden } = this.getClientType(pluginId);
|
|
567
|
+
let baseConnection = normalizeConnection$1(this.config.get("connection"));
|
|
648
568
|
if (this.getPluginDivisionModeConfig() !== "schema") {
|
|
649
569
|
baseConnection = lodash.omit(baseConnection, "database");
|
|
650
570
|
}
|
|
651
571
|
const connection = normalizeConnection$1(
|
|
652
|
-
this.config.getOptional(`${pluginPath$2(pluginId)}.connection`)
|
|
653
|
-
client
|
|
572
|
+
this.config.getOptional(`${pluginPath$2(pluginId)}.connection`)
|
|
654
573
|
);
|
|
655
574
|
baseConnection.application_name ||= `backstage_plugin_${pluginId}`;
|
|
656
575
|
return {
|
|
@@ -677,16 +596,6 @@ class PgConnector {
|
|
|
677
596
|
...role && { role }
|
|
678
597
|
};
|
|
679
598
|
}
|
|
680
|
-
/**
|
|
681
|
-
* Provides a partial `Knex.Config` database schema override for a given
|
|
682
|
-
* plugin.
|
|
683
|
-
*
|
|
684
|
-
* @param pluginId - Target plugin to get database schema override
|
|
685
|
-
* @returns Partial `Knex.Config` with database schema override
|
|
686
|
-
*/
|
|
687
|
-
getSchemaOverrides(pluginId) {
|
|
688
|
-
return createSchemaOverride(this.getClientType(pluginId).client, pluginId);
|
|
689
|
-
}
|
|
690
599
|
/**
|
|
691
600
|
* Provides a partial `Knex.Config`• database name override for a given plugin.
|
|
692
601
|
*
|
|
@@ -695,7 +604,7 @@ class PgConnector {
|
|
|
695
604
|
*/
|
|
696
605
|
getDatabaseOverrides(pluginId) {
|
|
697
606
|
const databaseName = this.getDatabaseName(pluginId);
|
|
698
|
-
return databaseName ?
|
|
607
|
+
return databaseName ? defaultNameOverride(databaseName) : {};
|
|
699
608
|
}
|
|
700
609
|
}
|
|
701
610
|
|
|
@@ -704,8 +613,8 @@ function createSqliteDatabaseClient(dbConfig, overrides, deps) {
|
|
|
704
613
|
const connConfig = knexConfig.connection;
|
|
705
614
|
const filename = connConfig.filename ?? ":memory:";
|
|
706
615
|
if (filename !== ":memory:") {
|
|
707
|
-
const directory =
|
|
708
|
-
|
|
616
|
+
const directory = platformPath__default.default.dirname(filename);
|
|
617
|
+
fs.ensureDirSync(directory);
|
|
709
618
|
}
|
|
710
619
|
let database;
|
|
711
620
|
if (deps && filename === ":memory:") {
|
|
@@ -773,29 +682,14 @@ function parseSqliteConnectionString(name) {
|
|
|
773
682
|
filename: name
|
|
774
683
|
};
|
|
775
684
|
}
|
|
776
|
-
const sqliteConnector = Object.freeze({
|
|
777
|
-
createClient: createSqliteDatabaseClient,
|
|
778
|
-
createNameOverride: createSqliteNameOverride,
|
|
779
|
-
parseConnectionString: parseSqliteConnectionString
|
|
780
|
-
});
|
|
781
685
|
function pluginPath$1(pluginId) {
|
|
782
686
|
return `plugin.${pluginId}`;
|
|
783
687
|
}
|
|
784
|
-
function normalizeConnection(connection
|
|
688
|
+
function normalizeConnection(connection) {
|
|
785
689
|
if (typeof connection === "undefined" || connection === null) {
|
|
786
690
|
return {};
|
|
787
691
|
}
|
|
788
|
-
return typeof connection === "string" || connection instanceof String ?
|
|
789
|
-
}
|
|
790
|
-
function createNameOverride(client, name) {
|
|
791
|
-
try {
|
|
792
|
-
return sqliteConnector.createNameOverride(name);
|
|
793
|
-
} catch (e) {
|
|
794
|
-
throw new errors.InputError(
|
|
795
|
-
`Unable to create database name override for '${client}' connector`,
|
|
796
|
-
e
|
|
797
|
-
);
|
|
798
|
-
}
|
|
692
|
+
return typeof connection === "string" || connection instanceof String ? parseSqliteConnectionString(connection) : connection;
|
|
799
693
|
}
|
|
800
694
|
class Sqlite3Connector {
|
|
801
695
|
constructor(config) {
|
|
@@ -808,14 +702,14 @@ class Sqlite3Connector {
|
|
|
808
702
|
const pluginDivisionMode = this.getPluginDivisionModeConfig();
|
|
809
703
|
if (pluginDivisionMode !== "database") {
|
|
810
704
|
throw new Error(
|
|
811
|
-
`The SQLite driver does not
|
|
705
|
+
`The SQLite driver does not support plugin division mode '${pluginDivisionMode}'`
|
|
812
706
|
);
|
|
813
707
|
}
|
|
814
708
|
const databaseClientOverrides = mergeDatabaseConfig(
|
|
815
709
|
{},
|
|
816
710
|
this.getDatabaseOverrides(pluginId)
|
|
817
711
|
);
|
|
818
|
-
const client =
|
|
712
|
+
const client = createSqliteDatabaseClient(
|
|
819
713
|
pluginConfig,
|
|
820
714
|
databaseClientOverrides,
|
|
821
715
|
deps
|
|
@@ -843,7 +737,7 @@ class Sqlite3Connector {
|
|
|
843
737
|
return sqliteFilename;
|
|
844
738
|
}
|
|
845
739
|
const sqliteDirectory = connection.directory ?? ".";
|
|
846
|
-
return
|
|
740
|
+
return platformPath__default.default.join(sqliteDirectory, sqliteFilename ?? `${pluginId}.sqlite`);
|
|
847
741
|
}
|
|
848
742
|
/**
|
|
849
743
|
* Provides the client type which should be used for a given plugin.
|
|
@@ -897,10 +791,7 @@ class Sqlite3Connector {
|
|
|
897
791
|
*/
|
|
898
792
|
getConnectionConfig(pluginId) {
|
|
899
793
|
const { client, overridden } = this.getClientType(pluginId);
|
|
900
|
-
let baseConnection = normalizeConnection(
|
|
901
|
-
this.config.get("connection"),
|
|
902
|
-
this.config.getString("client")
|
|
903
|
-
);
|
|
794
|
+
let baseConnection = normalizeConnection(this.config.get("connection"));
|
|
904
795
|
if (client.includes("sqlite3") && "filename" in baseConnection && baseConnection.filename !== ":memory:") {
|
|
905
796
|
throw new Error(
|
|
906
797
|
"`connection.filename` is not supported for the base sqlite connection. Prefer `connection.directory` or provide a filename for the plugin connection instead."
|
|
@@ -910,8 +801,7 @@ class Sqlite3Connector {
|
|
|
910
801
|
baseConnection = lodash.omit(baseConnection, "database");
|
|
911
802
|
}
|
|
912
803
|
const connection = normalizeConnection(
|
|
913
|
-
this.config.getOptional(`${pluginPath$1(pluginId)}.connection`)
|
|
914
|
-
client
|
|
804
|
+
this.config.getOptional(`${pluginPath$1(pluginId)}.connection`)
|
|
915
805
|
);
|
|
916
806
|
return {
|
|
917
807
|
// include base connection if client type has not been overridden
|
|
@@ -945,7 +835,7 @@ class Sqlite3Connector {
|
|
|
945
835
|
*/
|
|
946
836
|
getDatabaseOverrides(pluginId) {
|
|
947
837
|
const databaseName = this.getDatabaseName(pluginId);
|
|
948
|
-
return databaseName ?
|
|
838
|
+
return databaseName ? createSqliteNameOverride(databaseName) : {};
|
|
949
839
|
}
|
|
950
840
|
}
|
|
951
841
|
|
|
@@ -1087,6 +977,30 @@ async function dropDatabase(dbConfig, ...databaseNames) {
|
|
|
1087
977
|
}
|
|
1088
978
|
}
|
|
1089
979
|
|
|
980
|
+
const databaseServiceFactory = backendPluginApi.createServiceFactory({
|
|
981
|
+
service: backendPluginApi.coreServices.database,
|
|
982
|
+
deps: {
|
|
983
|
+
config: backendPluginApi.coreServices.rootConfig,
|
|
984
|
+
lifecycle: backendPluginApi.coreServices.lifecycle,
|
|
985
|
+
pluginMetadata: backendPluginApi.coreServices.pluginMetadata
|
|
986
|
+
},
|
|
987
|
+
async createRootContext({ config: config$1 }) {
|
|
988
|
+
return config$1.getOptional("backend.database") ? DatabaseManager.fromConfig(config$1) : DatabaseManager.fromConfig(
|
|
989
|
+
new config.ConfigReader({
|
|
990
|
+
backend: {
|
|
991
|
+
database: { client: "better-sqlite3", connection: ":memory:" }
|
|
992
|
+
}
|
|
993
|
+
})
|
|
994
|
+
);
|
|
995
|
+
},
|
|
996
|
+
async factory({ pluginMetadata, lifecycle }, databaseManager) {
|
|
997
|
+
return databaseManager.forPlugin(pluginMetadata.getId(), {
|
|
998
|
+
pluginMetadata,
|
|
999
|
+
lifecycle
|
|
1000
|
+
});
|
|
1001
|
+
}
|
|
1002
|
+
});
|
|
1003
|
+
|
|
1090
1004
|
exports.DatabaseManager = DatabaseManager;
|
|
1091
1005
|
exports.databaseServiceFactory = databaseServiceFactory;
|
|
1092
1006
|
exports.dropDatabase = dropDatabase;
|