Merge pull request #7916 from backstage/eide/firestore-clean-settings

[auth-backend] Only use settings that have a value when creating a FirestoreKeyStore
This commit is contained in:
Fredrik Adelöw
2021-11-09 16:27:01 +01:00
committed by GitHub
2 changed files with 20 additions and 10 deletions
+15 -10
View File
@@ -15,6 +15,7 @@
*/
import { Logger } from 'winston';
import { pickBy } from 'lodash';
import { PluginDatabaseManager } from '@backstage/backend-common';
import { Config } from '@backstage/config';
@@ -64,16 +65,20 @@ export class KeyStores {
if (provider === 'firestore') {
const settings = ks?.getConfig(provider);
const keyStore = await FirestoreKeyStore.create({
projectId: settings?.getOptionalString('projectId'),
keyFilename: settings?.getOptionalString('keyFilename'),
host: settings?.getOptionalString('host'),
port: settings?.getOptionalNumber('port'),
ssl: settings?.getOptionalBoolean('ssl'),
path: settings?.getOptionalString('path'),
timeout: settings?.getOptionalNumber('timeout'),
});
const keyStore = await FirestoreKeyStore.create(
pickBy(
{
projectId: settings?.getOptionalString('projectId'),
keyFilename: settings?.getOptionalString('keyFilename'),
host: settings?.getOptionalString('host'),
port: settings?.getOptionalNumber('port'),
ssl: settings?.getOptionalBoolean('ssl'),
path: settings?.getOptionalString('path'),
timeout: settings?.getOptionalNumber('timeout'),
},
value => value !== undefined,
),
);
await FirestoreKeyStore.verifyConnection(keyStore, logger);
return keyStore;