R2: git = source de vérité — src/nodes/ + build/extract intégrés au push
- src/nodes/*.js (6 nodes + template snapshot) = source de vérité unique. - n8n-push.mjs reconstruit le JSON depuis src/ avant syntaxe+golden+PUT (src gagne toujours; n8n-extract.mjs pour resynchroniser si édition UI). - n8n-build.mjs --check pour vérifier la synchro. - Copies historiques déplacées dans archive/ (mortes, dérivées de la prod). - .gitignore: backups locaux de rollback. - AGENTS.md: règle R2 pour toutes les futures sessions (dont Qwen local). - Validé: idempotence, mutation/restauration, pipeline push complet en réel.
This commit is contained in:
@@ -14,6 +14,21 @@ if (!INPUT) {
|
||||
console.error('Usage: node tools/n8n-push.mjs <inputFile> [workflowId]');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// R2 : src/nodes/ = SOURCE DE VÉRITÉ pour le workflow EVCS.
|
||||
// Le build injecte src/nodes/*.js dans le JSON AVANT toute vérification :
|
||||
// toute édition faite directement dans le JSON (ou l'UI n8n non ré-extraite)
|
||||
// est écrasée par src/. Workflow EVCS uniquement.
|
||||
if (path.basename(INPUT) === 'evcs-surplus-controller-v2.6.json' && fs.existsSync('src/nodes')) {
|
||||
console.log('Build src/nodes/ → JSON (source de vérité : src/)...');
|
||||
const { spawnSync } = await import('child_process');
|
||||
const b = spawnSync('node', ['tools/n8n-build.mjs'], { stdio: 'inherit' });
|
||||
if (b.status !== 0) {
|
||||
console.error('ABANDON: échec du build src → JSON.');
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
const local = JSON.parse(fs.readFileSync(INPUT, 'utf8'));
|
||||
const WORKFLOW_ID = process.argv[3] || local.id || 'ATswvGfG4KJUls0K';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user