Files
smom-dbis-138/services/token-aggregation/scripts/omnl-reconcile-report.mjs

35 lines
1.2 KiB
JavaScript
Raw Normal View History

#!/usr/bin/env node
/**
* Canonical reconciliation hash: IPSAS registry + journal matrix JSON (minor units / narratives unchanged).
* Exit 0 always; stdout JSON with sha256 for audit trail anchoring.
* Env: OMNL_IPSAS_GL_REGISTRY, OMNL_JOURNAL_MATRIX_PATH (optional overrides).
*/
import { readFileSync } from 'fs';
import { createHash } from 'crypto';
import { resolve } from 'path';
import { fileURLToPath } from 'url';
const __dirname = fileURLToPath(new URL('.', import.meta.url));
const regPath =
process.env.OMNL_IPSAS_GL_REGISTRY ||
resolve(__dirname, '../../../config/omnl-ipsas-gl-registry.json');
const matrixPath =
process.env.OMNL_JOURNAL_MATRIX_PATH ||
resolve(__dirname, '../../../config/omnl-journal-matrix.json');
const reg = readFileSync(regPath, 'utf8');
const matrix = readFileSync(matrixPath, 'utf8');
const canonical = JSON.stringify({
registry: JSON.parse(reg),
matrix: JSON.parse(matrix),
});
const sha256 = createHash('sha256').update(canonical).digest('hex');
const out = {
ok: true,
sha256,
registryPath: regPath,
matrixPath: matrixPath,
generatedAt: new Date().toISOString(),
};
process.stdout.write(JSON.stringify(out, null, 2) + '\n');