Files
core2026/packages/infra/scripts/activate-read-model-coverage.mjs
T
Hide_D 1a77bb3df1 feat: dashboard source coverage를 안전하게 활성화
엔진의 부대·예약턴·집계 변화와 mailbox writer를 저널에 연결하고 dashboard.global 및 인증 아이콘 source를 dependency vector에 포함한다. post-deploy coverage v1 활성화는 shared head seed와 CAS를 한 transaction으로 수행한다.
2026-08-16 18:51:17 +00:00

42 lines
1.4 KiB
JavaScript

import {
activateReadModelRevisionCoverage,
createGamePostgresConnector,
resolvePostgresConfigFromEnv,
} from '../dist/index.js';
const main = async () => {
const profile = process.env.READ_MODEL_COVERAGE_PROFILE?.trim();
const expectedConfirm = profile ? `activate:${profile}:coverage-v1` : '';
if (!profile || process.env.READ_MODEL_COVERAGE_CONFIRM !== expectedConfirm) {
throw new Error('confirmation');
}
if (!/^[a-zA-Z0-9_-]+$/u.test(profile)) {
throw new Error('profile');
}
const connector = createGamePostgresConnector(resolvePostgresConfigFromEnv({ schema: profile }));
try {
await connector.connect();
const result = await connector.prisma.$transaction((transaction) =>
activateReadModelRevisionCoverage(transaction)
);
process.stdout.write(
`${JSON.stringify({
profile,
previousVersion: result.previousVersion,
coverageVersion: result.coverageVersion,
seededHeads: result.seededHeads,
})}\n`
);
} finally {
await connector.disconnect();
}
};
await main().catch(() => {
process.stderr.write(
'Read-model coverage activation failed. Check the profile confirmation, built infra package, database connectivity, and current coverage version.\n'
);
process.exitCode = 1;
});