2026-08-09 22:47:43 +02:00
|
|
|
#!/usr/bin/env node
|
|
|
|
|
/**
|
|
|
|
|
* Seed / reset local demo login accounts (cross-platform).
|
|
|
|
|
* Requires Postgres + DATABASE_URL (defaults to docker-compose URL).
|
|
|
|
|
*
|
|
|
|
|
* Usage: node scripts/seed-local.mjs
|
|
|
|
|
*/
|
|
|
|
|
import { spawnSync } from "node:child_process";
|
|
|
|
|
import path from "node:path";
|
|
|
|
|
import { DEV_API_PORT, DEV_WEB_PORT } from "./dev-ports.mjs";
|
2026-08-10 02:04:45 +02:00
|
|
|
import { detectHostProfile, withGoLowMem } from "./lowmem-env.mjs";
|
2026-08-09 22:47:43 +02:00
|
|
|
import { loadRootEnv, repoRoot } from "./root-env.mjs";
|
|
|
|
|
|
2026-08-10 02:04:45 +02:00
|
|
|
const env = withGoLowMem(loadRootEnv(process.env), detectHostProfile());
|
2026-08-09 22:47:43 +02:00
|
|
|
if (!env.DATABASE_URL) {
|
|
|
|
|
env.DATABASE_URL =
|
|
|
|
|
"postgres://descrybe:descrybe@localhost:5433/descrybe?sslmode=disable";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const demoEmail = env.SEED_DEMO_EMAIL || "demo@descrybe.local";
|
|
|
|
|
const demoPass = env.SEED_DEMO_PASSWORD || "DemoPass123!";
|
|
|
|
|
const adminEmail = env.SEED_ADMIN_EMAIL || "berce.tim@gmail.com";
|
|
|
|
|
const adminPass = env.SEED_ADMIN_PASSWORD || "LocalDemo!Admin1";
|
|
|
|
|
|
|
|
|
|
const apiDir = path.join(repoRoot, "apps", "api");
|
|
|
|
|
|
|
|
|
|
function run(args) {
|
|
|
|
|
const r = spawnSync("go", args, {
|
|
|
|
|
cwd: apiDir,
|
|
|
|
|
env,
|
|
|
|
|
stdio: "inherit",
|
2026-08-10 02:04:45 +02:00
|
|
|
shell: false,
|
2026-08-09 22:47:43 +02:00
|
|
|
});
|
|
|
|
|
if (r.status !== 0) process.exit(r.status ?? 1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
console.log(`==> set-password ${adminEmail} (platform admin if present)`);
|
|
|
|
|
run([
|
|
|
|
|
"run",
|
|
|
|
|
"./cmd/migrator",
|
|
|
|
|
"-postgres",
|
|
|
|
|
env.DATABASE_URL,
|
|
|
|
|
"-set-password",
|
|
|
|
|
`${adminEmail}:${adminPass}`,
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
console.log(
|
|
|
|
|
"==> seed-demo (also upserts demo@descrybe.test)",
|
|
|
|
|
);
|
|
|
|
|
run([
|
|
|
|
|
"run",
|
|
|
|
|
"./cmd/seed-demo",
|
|
|
|
|
"-postgres",
|
|
|
|
|
env.DATABASE_URL,
|
|
|
|
|
"-email",
|
|
|
|
|
demoEmail,
|
|
|
|
|
"-password",
|
|
|
|
|
demoPass,
|
|
|
|
|
"-also-email",
|
|
|
|
|
"demo@descrybe.test",
|
|
|
|
|
]);
|
|
|
|
|
|
|
|
|
|
console.log("");
|
|
|
|
|
console.log("Local accounts:");
|
|
|
|
|
console.log(` demo: ${demoEmail} / ${demoPass} (also demo@descrybe.test)`);
|
|
|
|
|
console.log(` admin: ${adminEmail} / ${adminPass} (platform admin when that user exists)`);
|
|
|
|
|
console.log(" plan: Enterprise — Local Demo Co");
|
|
|
|
|
console.log(`Web: http://localhost:${DEV_WEB_PORT}/login`);
|
|
|
|
|
console.log(`API: http://localhost:${DEV_API_PORT}`);
|