@puls-atlas/cli
Version:
The Puls Atlas CLI tool for managing Atlas projects
31 lines • 1.57 kB
JavaScript
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);
};