ktx/packages/cli/src/setup-secrets.ts

26 lines
828 B
TypeScript
Raw Permalink Normal View History

2026-05-10 23:12:26 +02:00
import { chmod, mkdir, writeFile } from 'node:fs/promises';
import { join, resolve } from 'node:path';
export function envCredentialReference(envName: string): string {
return `env:${envName}`;
}
export interface WriteProjectLocalSecretReferenceOptions {
projectDir: string;
fileName: string;
value: string;
}
export async function writeProjectLocalSecretReference(
options: WriteProjectLocalSecretReferenceOptions,
): Promise<string> {
2026-05-10 23:51:24 +02:00
const secretsDir = resolve(options.projectDir, '.ktx/secrets');
2026-05-10 23:12:26 +02:00
const secretPath = join(secretsDir, options.fileName);
await mkdir(secretsDir, { recursive: true });
await writeFile(secretPath, `${options.value.trim()}\n`, { encoding: 'utf-8', mode: 0o600 });
if (process.platform !== 'win32') {
await chmod(secretPath, 0o600);
}
return `file:${secretPath}`;
}