krona-staff/scripts/create-app-role.mjs
Ochenstarik 3464998168
Some checks are pending
ci / verify (push) Waiting to run
feat: add secure attendance portal and payroll foundation
2026-09-24 15:59:38 +07:00

25 lines
941 B
JavaScript

import pg from 'pg';
const connectionString = process.env.DATABASE_MIGRATION_URL;
const password = process.env.POSTGRES_APP_PASSWORD;
if (!connectionString || !password) {
throw new Error('DATABASE_MIGRATION_URL and POSTGRES_APP_PASSWORD are required');
}
const client = new pg.Client({ connectionString, application_name: 'krona-staff-role-setup' });
await client.connect();
try {
const exists = await client.query("SELECT 1 FROM pg_roles WHERE rolname = 'krona_staff_app'");
if (exists.rowCount === 0) {
await client.query(
'CREATE ROLE krona_staff_app LOGIN NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT NOBYPASSRLS',
);
}
const statement = await client.query(
"SELECT format('ALTER ROLE krona_staff_app WITH LOGIN PASSWORD %L NOSUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT NOBYPASSRLS', $1::text) AS sql",
[password],
);
await client.query(statement.rows[0].sql);
} finally {
await client.end();
}