From 4ef91ab46732066d9b5acc4ef444b11a66fcfc86 Mon Sep 17 00:00:00 2001 From: Andre Wanlin <67169551+awanlin@users.noreply.github.com> Date: Wed, 24 May 2023 11:52:40 -0500 Subject: [PATCH] Added PG object details Signed-off-by: Andre Wanlin <67169551+awanlin@users.noreply.github.com> --- .changeset/afraid-rules-yell.md | 5 +++ packages/backend-common/config.d.ts | 60 ++++++++++++++++++++++++++++- 2 files changed, 63 insertions(+), 2 deletions(-) create mode 100644 .changeset/afraid-rules-yell.md diff --git a/.changeset/afraid-rules-yell.md b/.changeset/afraid-rules-yell.md new file mode 100644 index 0000000000..ab32da1cd9 --- /dev/null +++ b/.changeset/afraid-rules-yell.md @@ -0,0 +1,5 @@ +--- +'@backstage/backend-common': patch +--- + +Updated the backend database connection configuration schema to include the full PG object details in order to set the password visibility to secret diff --git a/packages/backend-common/config.d.ts b/packages/backend-common/config.d.ts index dc2e2fa133..42033a8c9f 100644 --- a/packages/backend-common/config.d.ts +++ b/packages/backend-common/config.d.ts @@ -14,6 +14,9 @@ * limitations under the License. */ +import { CustomTypesConfig } from 'pg'; +import { ConnectionOptions } from 'tls'; + export interface Config { app: { baseUrl: string; // defined in core, but repeated here without doc @@ -72,10 +75,63 @@ export interface Config { /** Default database client to use */ client: 'better-sqlite3' | 'sqlite3' | 'pg'; /** - * Base database connection string or Knex object + * Base database connection string or Knex (PG) object + * PG object details come from: https://node-postgres.com/apis/client * @visibility secret */ - connection: string | object; + connection: + | string + | { + /** + * User with which to authenticate to the server + */ + user?: string; + /** + * Corresponding password + * @visibility secret + */ + password: string; + /** + * Postgres server hostname or, for UNIX domain sockets, the socket filename + */ + host?: string; + /** + * Database name within the server + */ + database?: string; + /** + * Port on which to connect + */ + port?: number; + /** + * TLS/SSL connections settings + */ + ssl?: boolean | ConnectionOptions; + /** + * Custom type parsers + */ + types?: CustomTypesConfig; + /** + * Number of milliseconds before a statement in query will time out, default is no timeout + */ + statement_timeout?: false | number; + /** + * Number of milliseconds before a query call will timeout, default is no timeout + */ + query_timeout?: number; + /** + * The name of the application that created this Client instance + */ + application_name?: string; + /** + * Number of milliseconds to wait for connection, default is no timeout + */ + connectionTimeoutMillis?: number; + /** + * Number of milliseconds before terminating any session with an open idle transaction, default is no timeout + */ + idle_in_transaction_session_timeout?: number; + }; /** Database name prefix override */ prefix?: string; /**