SOC 2 / HIPAA-bewijspakket
Het bewijs-endpoint legt de live staat van een workspace vast - compliance- modus + retentie, leden per rol, aangepaste rollen, status van de IP-allowlist, SSO- / SCIM-koppelingen, aantal API-sleutels en volume van het auditlog over de afgelopen 30 / 90 dagen. Het is het artefact waar je auditor om vraagt als hij zegt “laat me zien hoe het op datum X was”, en het bronantwoord op veel beveiligingsvragenlijsten van leveranciers.
Status. Het eigen SOC 2-programma van Elido is in voorbereiding: er is nog geen SOC 2-rapport en Elido is niet ISO 27001-gecertificeerd. Dit endpoint exporteert de configuratie van jouw workspace (het bewijs dat je nodig hebt voor je eigen controls); het is geen verklaring van Elido en maakt een workspace niet SOC 2- of HIPAA-compliant. De workspacemodi
soc2enhipaastellen auditretentie en gerelateerde standaardwaarden in. IP-adressen in het auditlog en bij klikken worden volledig opgeslagen, wat van belang is voor je beoordeling van gegevensbescherming. De dataregio kan nog niet per workspace worden vastgepind.
Het endpoint is alleen-lezen en vereist de machtiging
compliance.view, dus een aangepaste rol “compliance officer” kan bewijs produceren zonder andere wijzigingsrechten op de workspace te hebben.
Wat je krijgt
Twee oppervlakken - dezelfde momentopname, een andere vorm:
| Methode | Pad | Vorm |
|---|---|---|
GET | /v1/workspaces/{ws}/compliance/evidence | JSON |
GET | /v1/workspaces/{ws}/compliance/evidence.zip | ZIP-archief |
De JSON is de gestructureerde momentopname voor tools (Vanta / Drata / je
interne bewijstracker). De ZIP geef je aan een menselijke
auditor - dezelfde JSON erin, plus de afgelopen 90 dagen aan auditgebeurtenissen
als CSV, het huidige ledenbestand als CSV, de IP-allowlist als CSV
en een README.md die elk bestand koppelt aan de SOC 2-control die het dekt.
JSON-momentopname
curl 'https://api.elido.app/v1/workspaces/1/compliance/evidence' \
-H "Authorization: Bearer $ELIDO_TOKEN"{
"workspace_id": 1,
"collected_at": "2026-05-01T12:00:00Z",
"controls_matrix_url": "https://docs.elido.app/compliance/SOC2",
"posture": {
"mode": "soc2",
"audit_retention_days": 2190,
"default_audit_retention_days": 730,
"ip_allowlist_enabled": true,
"ip_rules_count": 4
},
"access": {
"members_total": 18,
"members_by_role": { "owner": 1, "admin": 3, "editor": 9, "viewer": 5 },
"custom_roles_count": 2,
"pending_invitations": 0,
"api_keys_active": 6,
"api_keys_last_created": "2026-04-12T08:30:00Z"
},
"auditing": {
"events_last_30_days": 4812,
"events_last_90_days": 14201,
"oldest_retained": "2024-04-30T00:00:00Z",
"newest_event": "2026-05-01T11:58:43Z"
},
"integrations": {
"sso_bound": true,
"scim_bound": true,
"scim_enabled": true,
"baa_signed_count": 1
}
}ZIP-bundel
curl -OJ 'https://api.elido.app/v1/workspaces/1/compliance/evidence.zip' \
-H "Authorization: Bearer $ELIDO_TOKEN"Indeling van de bundel:
elido-evidence-1-20260501.zip
├── evidence.json (the snapshot above)
├── audit-events-90d.csv (trailing 90d audit log)
├── members.csv (current workspace membership)
├── ip-rules.csv (current IP allowlist)
└── README.md (file → SOC 2 control mapping)audit-events-90d.csv is hard begrensd op 90 dagen, omdat bewijspakketten
op een bepaald moment worden beoordeeld; langere sporen moeten komen uit
je SIEM-webhook-firehose (webhookgids),
die elke gebeurtenis bijna in realtime naar je eigen SIEM streamt.
Koppeling aan SOC 2-controls
De README.md van de bundel koppelt elk bestand aan de AICPA Trust Services
Criteria waarnaar je auditor kan vragen. Samenvatting:
| Bestand | Gekoppeld aan |
|---|---|
evidence.json (hele momentopname) | CC1.5 (verantwoording), CC6.1 (logische toegang), CC7.1 (monitoring) |
audit-events-90d.csv | CC1.5 (bewijs van verantwoording), CC4.1 (monitoring), CC7.1 (gebeurtenisdetectie) |
members.csv | CC6.1 (toegang beperken), CC6.3 (gebruikers autoriseren), CC6.5 (deprovisioning) |
ip-rules.csv | CC6.6 (logische toegang - extern beschermen) |
De README.md in de bundel is de controlkoppeling. Het
veld controls_matrix_url in de momentopname verwijst naar een
controlmatrixpagina die gepland is en nog niet is gepubliceerd.
Opmerking over zelf hosten
Het endpoint maakt deel uit van services/api-core en draait op dezelfde
Postgres-pool als de rest van de API - geen extra bewegende delen. De
auditlogstroom van de afgelopen 90 dagen wordt begrensd door audit_retention_days
van je workspace; een HIPAA-workspace met 2190 dagen retentie kan
een geschiedenis van 6 jaar opleveren als je die ooit nodig hebt (exporteer de bundel
meerdere keren binnen het venster).
SDK
import { ElidoApi } from "@elido/sdk";
const api = new ElidoApi({ baseUrl, token });
const snap = await api.compliance.evidence(workspaceId);
console.log(snap.access.members_by_role);
// For the ZIP, hand the URL to a download mechanism - fetch + stream
// to disk, or `<a href download>` in a browser.
window.location.href = api.compliance.evidenceBundleUrl(workspaceId);import "github.com/elidoapp/elido/packages/sdk-go/elido"
c, _ := elido.New(elido.Options{BaseURL: baseURL, Token: token})
snap, _ := c.Compliance.Evidence(ctx, workspaceID)
fmt.Println(snap.Posture.Mode)
// ZIP URL - caller streams the body with its own auth header.
zipURL := c.Compliance.EvidenceBundleURL(workspaceID)import elido
client = elido.Client(base_url=base_url, token=token)
snap = client.compliance.evidence(workspace_id)
print(snap["access"]["members_by_role"])
zip_url = client.compliance.evidence_bundle_url(workspace_id)Endpointreferentie
| Methode | Pad |
|---|---|
GET | /v1/workspaces/{ws}/compliance/evidence |
GET | /v1/workspaces/{ws}/compliance/evidence.zip |