Git (Azure DevOps)-connectie

Veldreferentie: apache-airflow-providers-git-azure. Een standaard git-connectie (het ingebouwde git-type van Airflow). Workload identity (helemaal geen secret) is een derde optie, maar die wordt op AKS-/platformniveau ingericht, niet iets dat je per connectie configureert: zie “Prerequisites” in de veldreferentie daarvoor. Voor een connectie die je zelf in de UI aanmaakt zijn er twee flows:

  • PAT: een Personal Access Token van een Azure DevOps-gebruikersaccount.

  • Service principal: een appregistratie die als lid van de Azure DevOps-organisatie is onboarded. Deze heeft het Basic-toegangsniveau nodig (Stakeholder heeft geen Git-toegang) en, alleen gebonden aan de target-repository (Project Settings → Repositories → <repo> → Security), niet organisatiebreed, de rollen Reader + Code: Read. Daarnaast is de toestemming View project-level information nodig, verleend op projectniveau: Project Settings → Permissions → Users → zoek de service principal op → klap de rij uit → schakel View project-level information in. Zonder deze authenticeert de clone wel, maar mislukt hij omdat de bundle het project waartoe de repository behoort niet kan bepalen.

Stappen

  1. Open in de Airflow UI Admin → Connections, en klik op + om een nieuwe connectie toe te voegen.

  1. Stel Connection Id in (overeenkomend met de connectie die de DAG bundle-config verwacht, of de eigen conn_id van je DAG) en Connection Type op git.

  1. Stel Host in op de HTTPS-repository-URL (https://dev.azure.com/<org>/<project>/_git/<repo>).

    • PAT: vul Password in met de token, laat Login en Extra leeg.

    • Service principal: vul Login (client-ID), Password (client secret) in, en Extra met {"tenant_id": "<tenant-id>"} — de extra tenant_id is wat de hook vertelt om het wachtwoord als client secret te behandelen in plaats van als PAT. Bevestig dat de appregistratie al is onboarded in de Azure DevOps-organisatie (Basic-licentie), Code: Read op de repo heeft gekregen, en View project-level information op het project heeft gekregen (Project Settings → Permissions → Users → zoek de service principal op → klap de rij uit) voordat je opslaat, anders authenticeert de connectie wel maar mislukt het clonen.

    Klik op Save.