UNPKG

@puls-atlas/cli

Version:

The Puls Atlas CLI tool for managing Atlas projects

31 lines 1.57 kB
import { normalizeOptionalString } from '../../../../utils/value.js'; const AIRBYTE_AUTH_SECRET_NAME = 'airbyte-auth-secrets'; const AIRBYTE_AUTH_SECRET_ADMIN_EMAIL_KEY = 'instance-admin-email'; const AIRBYTE_AUTH_SECRET_ADMIN_PASSWORD_KEY = 'instance-admin-password'; const resolveAirbyteAuthSecretCredentials = async (serviceConfig = {}, dependencies = {}) => { const { readServiceClusterSecret, terraformConnection } = dependencies; if (typeof readServiceClusterSecret !== 'function' || !terraformConnection) { return null; } const namespace = normalizeOptionalString(serviceConfig.namespace) ?? 'airbyte'; const authSecretName = normalizeOptionalString(serviceConfig.authSecretName) ?? AIRBYTE_AUTH_SECRET_NAME; const authSecret = await readServiceClusterSecret(terraformConnection, namespace, authSecretName, dependencies); if (!authSecret) { return null; } return { adminEmail: normalizeOptionalString(authSecret[AIRBYTE_AUTH_SECRET_ADMIN_EMAIL_KEY]), password: normalizeOptionalString(authSecret[AIRBYTE_AUTH_SECRET_ADMIN_PASSWORD_KEY]) }; }; export const createAirbyteServiceSecretPayload = async (outputs, serviceConfig = {}, dependencies = {}) => { const authSecretCredentials = await resolveAirbyteAuthSecretCredentials(serviceConfig, dependencies); return JSON.stringify({ adminEmail: authSecretCredentials?.adminEmail ?? outputs.admin_email ?? serviceConfig.adminEmail ?? null, password: authSecretCredentials?.password ?? outputs.admin_password ?? null, url: outputs.url ?? null }, null, 4); };