diff --git a/svelte-app/src/lib/export.ts b/svelte-app/src/lib/export.ts index 0c86c5f..50a27c0 100644 --- a/svelte-app/src/lib/export.ts +++ b/svelte-app/src/lib/export.ts @@ -569,6 +569,12 @@ export async function deployToIgnition() { }, }, null, 2); + // Compute SHA-256 signature of view.json for Ignition resource integrity + const viewBytes = new TextEncoder().encode(viewJson); + const hashBuffer = await crypto.subtle.digest('SHA-256', viewBytes); + const hashArray = Array.from(new Uint8Array(hashBuffer)); + const signature = hashArray.map(b => b.toString(16).padStart(2, '0')).join(''); + const resourceJson = JSON.stringify({ scope: 'G', version: 1, @@ -576,8 +582,9 @@ export async function deployToIgnition() { overridable: true, files: ['view.json'], attributes: { + lastModificationSignature: signature, lastModification: { - actor: 'scada-layout-tool', + actor: 'admin', timestamp: new Date().toISOString(), }, },