Skip to content

AI Pilot API

Onderhouden door: Aether365 Team Doelgroep: Ontwikkelaars Scope: Remediatie-endpoints van AI Pilot - automatische fixes genereren, beoordelen en toepassen

AI Pilot zet mislukte bevindingen uit je Compliance- en Exposure-scans om in automatische fixes. Via de API kun je een remediatieplan voor een scan genereren, de voorgestelde wijzigingen beoordelen en de fixes toepassen die je goedkeurt. Een fix toepassen is altijd een expliciete aanroep die jij doet: er wordt niets gewijzigd totdat je erom vraagt.

Vereisten

AI Pilot-endpoints vereisen de AI Pilot-rechten (Pro of Enterprise) en een Microsoft 365-verbinding die is gekoppeld in AI Pilot-modus (write-consent). Een alleen-lezen verbinding kan plannen genereren en lezen, maar geen fixes toepassen. Aanroepen geven 403 AUTH_INSUFFICIENT_SCOPE terug wanneer de rechten ontbreken.

Automatisch remedieerbare checks opvragen

Geeft de check-ID's terug die AI Pilot automatisch kan herstellen. Gebruik dit om per bevinding te bepalen of er een automatische fix beschikbaar is.

GET /tenants/me/remediation/capabilities

Voorbeeldresponse

json
{
  "success": true,
  "data": { "autoRemediableTestIds": ["AE.1068", "CIS.M365.5.1.2.3", "AE.1102"] }
}

Een remediatieplan genereren

Bouwt een remediatieplan voor een voltooide scan: één item per herstelbare mislukte bevinding, elk met de huidige waarde, de voorgestelde veilige waarde en de instelling waarop het zich richt. Het lezen van de huidige waarde gebruikt de leesscope van de AI Pilot-verbinding; er wordt niets geschreven.

POST /tenants/me/scans/{scanId}/remediation-plan

Voorbeeldverzoek

bash
curl -X POST https://api.aether365.io/tenants/me/scans/scan_abc123/remediation-plan \
  -H "Authorization: Bearer ak_live_..."

Voorbeeldresponse

json
{
  "success": true,
  "data": {
    "id": "plan_abc123",
    "scanId": "scan_abc123",
    "msTenantId": "00000000-0000-0000-0000-000000000000",
    "status": "pending",
    "createdAt": "2026-06-17T09:00:00Z",
    "items": [
      {
        "id": "item_1",
        "testId": "AE.1068",
        "coveredTestIds": ["AE.1068", "CIS.M365.5.1.2.3"],
        "actionKey": "require_mfa_admins",
        "title": "Require MFA for administrator roles",
        "settingKey": "conditionalAccess.requireMfaAdmins",
        "currentValue": false,
        "proposedValue": true,
        "status": "pending",
        "appliedBy": null,
        "appliedAt": null,
        "error": null
      }
    ]
  }
}

Remediatieplannen opvragen

Geeft de remediatieplannen van de tenant terug, nieuwste eerst, elk met zijn items en samengevatte status.

GET /tenants/me/remediation-plans

Statuswaarden van een plan

StatusBetekenis
pendingGegenereerd, nog niets toegepast
completedElk item toegepast en geverifieerd
partially_appliedSommige items toegepast, andere mislukt of nog open
failedGeen enkel item kon worden toegepast

Een remediatieplan opvragen

GET /tenants/me/remediation-plans/{planId}

Geeft één plan terug (met zijn items), beperkt tot jouw tenant. Een plan dat aan een andere tenant toebehoort geeft 404 NOT_FOUND terug.


Een remediatieplan toepassen

Past de geselecteerde items toe via de AI Pilot-verbinding: elke instelling wordt via Microsoft Graph geschreven en daarna opnieuw gelezen om te bevestigen dat de wijziging effect heeft gehad. Items die je niet opgeeft blijven ongemoeid, en een al geverifieerd item wordt nooit opnieuw toegepast.

POST /tenants/me/remediation-plans/{planId}/apply

Verzoekbody

VeldTypeBeschrijving
itemIdsstring[]ID's van de toe te passen planitems

Voorbeeldverzoek

bash
curl -X POST https://api.aether365.io/tenants/me/remediation-plans/plan_abc123/apply \
  -H "Authorization: Bearer ak_live_..." \
  -H "Content-Type: application/json" \
  -d '{ "itemIds": ["item_1", "item_2"] }'

Voorbeeldresponse

Het volledige plan wordt teruggegeven met de bijgewerkte status van elk item en, bij een fout, een error die uitlegt waarom.

json
{
  "success": true,
  "data": {
    "id": "plan_abc123",
    "status": "partially_applied",
    "items": [
      {
        "id": "item_1",
        "title": "Require MFA for administrator roles",
        "status": "verified",
        "appliedAt": "2026-06-17T09:05:00Z",
        "error": null
      },
      {
        "id": "item_2",
        "title": "Disable legacy authentication",
        "status": "failed",
        "error": "Write consent is missing or has expired"
      }
    ]
  }
}

Statuswaarden van een item

StatusBetekenis
verifiedToegepast en bevestigd door een herlezing
appliedToegepast; Microsoft heeft de propagatie nog niet bevestigd (later opnieuw gecontroleerd)
failedKon niet worden toegepast - zie error (bijv. write consent ontbreekt)
pendingNiet toegepast in deze aanroep

Menselijke goedkeuring blijft behouden

Er is geen "alles toepassen"-sneltoets. Jij kiest het plan en de exacte items om toe te passen, dus een geautomatiseerde workflow houdt nog steeds een mens (of een bewuste beslissing) in de lus.

Was deze pagina nuttig?