Files
jerapah-flow/packages/server/test/owner-migrate-smoke.js
T
nsrb 5615d989fa feat(migration): migrate legacy owner data and update config reference handling
- Implemented a migration process to move resources from the legacy owner "default" to the new default owner "local", ensuring no data loss during the transition.
- Updated configuration reference handling to replace legacy `$VAR_`, `$SECRET_`, and `$CONTEXT_` prefixes with mustache-style `{{ vars.name }}`, `{{ secrets.name }}`, and `{{ context.name }}`.
- Enhanced YAML configuration files and scripts to reflect the new mustache syntax, improving consistency across the application.
- Added tests to validate the migration process and ensure proper handling of legacy references.
- Updated documentation to guide users on the new configuration reference format.
2026-08-30 05:32:48 +07:00

31 lines
1.1 KiB
JavaScript

import { rewriteLegacyConfigRefsInText } from "../config-ref-rewrite.js";
import { migrateDefaultOwnerIfNeeded } from "../owner-migrate.js";
import { migrate, db } from "../db.js";
function assert(cond, msg) {
if (!cond) throw new Error(msg);
}
{
const { text, changed } = rewriteLegacyConfigRefsInText(
"a: $VAR_x\nb: $SECRET_y\nc: $CONTEXT_z\nd: passwordSecret: gmail_app",
);
assert(changed, "detects legacy");
assert(text.includes("{{ vars.x }}"), "var rewrite");
assert(text.includes("{{ secrets.y }}"), "secret rewrite");
assert(text.includes("{{ context.z }}"), "context rewrite");
assert(text.includes("passwordSecret: gmail_app"), "bare secret name untouched");
}
await migrate();
const first = await migrateDefaultOwnerIfNeeded();
const second = await migrateDefaultOwnerIfNeeded();
assert(second.secrets.moved === 0, "second pass moves no secrets");
assert(second.runs.moved === 0, "second pass moves no runs");
await db.destroy();
console.log("owner-migrate smoke passed", {
firstSecretsMoved: first.secrets.moved,
secondSecretsMoved: second.secrets.moved,
});