FixControl/Documentatie

Beheerdersgids

DevOps & CI/CD

Koppel je CI/CD-providers zodat FixControl deploy- en pipeline-events ontvangt, op risico beoordeelt en onveranderlijk vastlegt — standaard observeren-en-governen, met door een mens goedgekeurde Argo-rollout-promotie waar dat is geconfigureerd.

Preview

Deze functionaliteit is vroeg. Schermen en dekking zijn nog in ontwikkeling; baken haar expliciet af tijdens een pilot.

Onder Instellingen → DevOps koppel je je CI/CD-providers aan FixControl. Eenmaal gekoppeld ontvangt FixControl de deploy- en pipeline-events van die host, controleert de handtekening, beoordeelt elk event op risico via de policy-engine en schrijft een onveranderlijk logboek weg.

Standaard observeren-en-governen. Voor de meeste providers beoordeelt en logt FixControl je deployments — het triggert of rolt niets uit op eigen houtje. Het enige uitvoeringspad vandaag is Argo Rollouts-promotie, en dat draait pas nadat een mens een deployment-poort goedkeurt, waar Argo daarvoor is geconfigureerd. Er is geen autonome deploy: niets wordt gepromoot zonder een vastgelegde menselijke beslissing, en de promotie zelf wordt geaudit.

Dit is een beheerderssurface (rol Beheerder, plus platformbeheerders) en werkt per tenant.

Hoe een koppeling werkt

Een koppeling is de binding tussen één CI/CD-host en jouw tenant. Elke koppeling heeft een soort die bepaalt hoe hij inlogt en hoe zijn webhooks geverifieerd worden:

SoortVoorbeeldHoe je koppelt
GitHub AppGitHub ActionsInstalleer de FixControl GitHub App — verifieert via een App-niveau geheim, geen per-tenant geheim te kopiëren.
OAuth-appGitLab CIKoppel via OAuth (hergebruikt je bestaande GitLab-koppeling) + project-ID.
HandmatigJenkins, Azure DevOps, Argo CD, Vercel, Terraform Cloud, KubernetesFixControl maakt een webhook-geheim aan dat één keer wordt getoond; dat zet je op de webhook van de host.

Alle acht providers zijn beschikbaar voor observeren-en-governen. Elke koppeling toont z'n live status:

niet gekoppeld → koppelen → gekoppeld → verminderd → ongeldige inloggegevens → ingetrokken

  • Verminderd — gekoppeld, maar het laatste event gaf een (tijdelijke) fout.
  • Ongeldige inloggegevens — een permanente auth-fout (token ingetrokken / app verwijderd).
  • Ingetrokken — je hebt zelf ontkoppeld; webhooks worden geweigerd en opgeslagen inloggegevens gewist.

De providers

ProviderSoortWebhook-verificatieKoppelen
GitHub ActionsGitHub AppHMAC-SHA256, App-niveau geheimInstalleer de GitHub App
GitLab CIOAuthGedeeld token (X-Gitlab-Token)Koppel GitLab (OAuth) + project-ID
JenkinsHandmatig (legacy)HMAC-SHA256 (X-FixControl-Signature)Handmatig + Notification-webhook
Azure DevOpsHandmatigHTTP Basic-auth (wachtwoord = geheim)Handmatig + Service Hook
Argo CDHandmatigBearer-token (Authorization: Bearer)Handmatig + notifications-webhook
VercelHandmatigHMAC-SHA1 (x-vercel-signature)Handmatig + Vercel-webhook
Terraform CloudHandmatigHMAC-SHA512 (X-TFE-Notification-Signature)Handmatig + Run notification
KubernetesHandmatigHMAC-SHA256 + X-FixControl-Account (cluster-ID)Handmatig + rollout-forwarder

Een provider koppelen

De grote lijn is voor elke provider hetzelfde:

  1. Open Instellingen → DevOps en kies de provider.
  2. GitHub: klik GitHub App installeren. GitLab: klik GitLab koppelen en vul het numerieke project-ID in. Handmatig: vul de instance-/job-identifier in (en optioneel een API-token).
  3. Bij een handmatige (of GitLab-) koppeling toont FixControl een webhook-geheim — kopieer het meteen, het wordt maar één keer getoond.
  4. Plak de webhook-URL (die de kaart toont) in de webhook-instellingen van de host, en zet het geheim in het juiste veld/de juiste header (de kaart geeft per provider de exacte hint).
  5. Draai een echte pipeline of deploy. De koppeling toont recente gegoverneerde runs zodra de eerste binnenkomt.
De webhook-URL verschijnt pas als er een publieke origin is geconfigureerd op de server (PUBLIC_ORIGIN of een gelijkwaardige variabele). Zonder publieke URL kan een host FixControl niet bereiken.

Voorbeeld: GitLab CI

  1. In FixControl → Instellingen → DevOpsGitLab koppelen, voer het project-ID in. Kopieer het getoonde geheim.
  2. In het GitLab-project → Settings → Webhooks: voeg de webhook-URL toe, plak het geheim als Secret token, en zet Pipeline events + Deployment events aan.

Voorbeeld: Jenkins (legacy)

Jenkins heeft geen standaard voor ondertekende webhooks. FixControl verifieert daarom een HMAC die je zelf op een Notification-webhook instelt. Gebruik bij voorkeur GitHub of GitLab. Wil je toch Jenkins: vul de Jenkins-form in, kopieer het geheim, en laat Jenkins de build-JSON POSTen met de header X-FixControl-Signature: sha256=<HMAC van de body>.

De exacte stappen per provider (Azure DevOps, Argo CD, Vercel, Terraform Cloud, Kubernetes) volgen hetzelfde patroon: koppel handmatig, kopieer het eenmalige geheim, en wire de webhook van de host naar de getoonde URL met de header uit de kaart-hint. De diepere technische gids (env-variabelen, scopes, lokaal testen met een tunnel) staat in de interne docs-portal onder devops-integrations.

Wat zie je na het koppelen?

  • Op de koppelingskaart: het gekoppelde account, de scopes, de webhook-gezondheid (laatste event, aantal, laatste fout) en de knoppen Geheim roteren en Ontkoppelen.
  • Onder Operaties (AI-operaties-governance): de gegoverneerde CI/CD-activiteit, de risicoverdeling, de infrastructuur-risicokaart en de goedkeuringswachtrij. Elk event krijgt een uitkomst: Automatisch, Alleen concept, Goedkeuring vereist of Geblokkeerd — volgens je beleid.

Beveiliging

  • Versleuteld opgeslagen — tokens en webhook-geheimen liggen versleuteld op (per-tenant sleutel-envelop). De API geeft alleen booleans terug (heeft geheim ja/nee); een vers geheim wordt exact één keer getoond.
  • Handtekening eerst — de webhook-route weigert elke payload die niet verifieert (401), en logt die als afgewezen event.
  • Tenant-isolatie — alle tabellen zijn fail-closed RLS; binnenkomende webhooks resolven de tenant veilig vóór er iets geschreven wordt.
  • Alleen beheerders — koppelen, ontkoppelen en geheim roteren vereisen settings.edit.
  • Volledige audit trail — koppelen, ontkoppelen, geheim roteren, elk geaccepteerd én elk geweigerd event zijn hash-geketend vastgelegd.
  • Geen autonome uitvoering — ingestie triggert nooit een uitgaande actie. Het enige uitvoeringspad, Argo Rollouts-promotie, draait uitsluitend nadat een mens een deployment-poort goedkeurt (waar geconfigureerd) en wordt zelf hash-chained in de audittrail vastgelegd.

Roadmap

Door een mens goedgekeurde Argo Rollouts-promotie is vandaag live — een goedgekeurde deployment-poort promoot een gepauzeerde rollout waar Argo is geconfigureerd (directe API of git-promote). Het uitbreiden van goedkeuring-gepoorte uitvoering, en abort/rollback, naar meer CI/CD-providers staat op de roadmap. Zie Governance & beleid voor hoe events op risico beoordeeld worden.

Zie ook: Integraties — overzicht · Governance & beleid · Security & audit.

Iets onduidelijk of fout?Laat het ons weten →

FixControl is een handelsnaam van FixControl B.V. i.o.