dry_run, quindi invia. Il server valida
esattamente come un salvataggio nella web app, poi calcola il punteggio e persiste una nuova
valutazione.
Tutte le richieste si autenticano con un header X-Aegister-Token (vedi
Autenticazione e API token).
L’organizzazione deve possedere la licenza v_ciso. La lettura richiede il ruolo view;
la scrittura richiede il ruolo edit (security_officer, owner o super_admin).
I percorsi qui sotto sono abbreviati come
.../workflows/{wid}/.... La base completa è
https://app.aegister.com/api/v1/v-ciso/organizations/{oid}. Tutte le risposte usano
l’envelope standard { "error": 0|1, "messages": [], "data": {…} } (più "total" negli elenchi).Prima di iniziare
Questa guida parte da un’organizzazione esistente che possiede già la licenzav_ciso e ha
il framework che vuoi compilare associato e configurato. Ti servono solo il suo id
organizzazione ({oid}) e un token con il ruolo edit (security_officer, owner o super_admin).
1. Individua cosa compilare
Elenca ogni attività (tabella e a domande) dell’organizzazione, ciascuna con il suotype,
così che uno script possa localizzare su cosa lavorare. Filtra con ?type=table o ?type=questions.
workflow_id + task_id restituiti per le chiamate per-attività. Il più datato
GET .../table-tasks (List table tasks) restituisce solo le attività tabella; /tasks le copre entrambe.
2. Attività tabella (righe)
Leggi la specifica (il contratto)
type, required, un format dichiarativo (per esempio
{ "kind": "date", "pattern": "YYYY-MM-DD" }) e i valori ammessi in choices (con sia
l’id value sia il label localizzato). Le colonne dipendenti riportano depends_on +
choices_by_parent; le colonne cross-attività riportano source. Invia il label della scelta
oppure il suo value id; le colonne a valori multipli accettano un array o una stringa unita da |.
Valida senza scrivere (dry_run)
errors (scelta errata, data/numero non validi, un valore figlio non
ammesso per il suo genitore, un valore cross-attività sconosciuto) e ripeti finché error_count è 0.
Invia
Rimuovidry_run per persistere. Il server valida di nuovo, invia al motore di calcolo del
punteggio e registra una nuova valutazione, esattamente come un salvataggio nella web app.
400 con error: 1 e la lista
data.errors; non viene scritto nulla.
3. Attività a domande (risposte)
Le attività a domande usano gli stessi endpoint/spec e /import; la chiave del payload è
answers invece di rows. Leggi la specifica e le risposte correnti in un’unica chiamata per il
prefill, quindi invia.
{ "value", "evidence": [<path>], "note": [{ "id", "response" }] }. Carica prima il file
(vedi sezione 5) e usa il path restituito:
dry_run per persistere; la risposta riporta il nuovo evaluation_id, come per le tabelle.
4. Controlli del framework
Il framework di un workflow (l’insieme di controlli dietro il punteggio) ha il proprio trio spec/answers/submit, raggruppato in step. Lavora uno step alla volta con?step=<stepId>.
id, label, description, type
(radio|select|checkbox|date|number|text|…), choices, required, un flag evidence
(se è possibile allegare file), step, subframework, category e weight.
Invia le risposte di uno step con controls-import: prima dry_run, poi persisti.
dry_run valida e poi invia tramite /evaluate (Aegister calcola il punteggio e persiste),
restituendo { "submitted": true, "evaluation_id": … }.
5. Evidenze: il caricamento in due passi
Carica le evidenze separatamente, non inline. Invia il file al suo artefatto, quindi riferisci ilpath restituito nella risposta.
Passo 1, carica il file come JSON base64 verso l’artefatto (un id di controllo o di domanda):
413); i formati ammessi sono PDF, Word
(.doc/.docx), Excel (.xls/.xlsx), immagini e video (qualsiasi altro restituisce 400). I caricamenti
vengono deduplicati per SHA-256 (un contenuto identico restituisce la versione esistente, 200, invece di
una nuova 201), e per ogni artefatto vengono conservate solo le ultime 10 versioni.
Passo 2, riferisci il path restituito nell’array evidence della risposta che invii
(sezioni 3 e 4).
Per elencare le evidenze esistenti in un workflow (ogni artefatto con la sua ultima versione e
l’intera cronologia), chiama GET .../workflows/{wid}/documents (List Documents nella barra laterale).
La cronologia e i download per-artefatto usano gli altri endpoint Documents sotto
V-CISO.
