aegida-console / scripts / seed.mjs
seed.mjs
Raw
import bcrypt from "bcryptjs";
import pg from "pg";

const connectionString = process.env.DATABASE_URL;

if (!connectionString) {
  throw new Error("DATABASE_URL must be configured");
}

const userId = process.env.AUTH_USER_ID ?? "00000000-0000-4000-8000-000000000001";
const email = process.env.AUTH_EMAIL ?? "demo@ai-control.local";
const password = process.env.AUTH_PASSWORD ?? "Demo1234!";
const passwordHash = await bcrypt.hash(password, 12);
const pool = new pg.Pool({ connectionString });

try {
  await pool.query(
    `INSERT INTO users (id, email, password_hash)
     VALUES ($1, $2, $3)
     ON CONFLICT (email) DO UPDATE SET
       password_hash = EXCLUDED.password_hash,
       updated_at = now()`,
    [userId, email.toLowerCase(), passwordHash],
  );
} finally {
  await pool.end();
}