<!-- Bronnen en connectoren -->
<!-- canonical: https://plainwater.ai/nl/wiki/bronnen/overzicht -->
# Bronnen en connectoren

Een **bron** is een systeem waar een agent mee werkt: een database, een rapportageomgeving, een ETL-tool of een
documentopslag. Elke bron hoort bij één klant, heeft een soort en een omgeving (bijvoorbeeld productie of test), en een
eigen stand voor datatoegang.

## Databases (native)

Voor deze databases heeft het platform eigen, vaste querysjablonen. Een agent krijgt metadata, tellingen en statistieken
zonder dat er vrije SQL naar de bron gaat.

| Database | Wat agents kunnen |
| --- | --- |
| **SQL Server / Azure SQL** | Metadata, kwaliteit, performance, ETL-logprofielen, verificatiesandbox, vrije SQL als de bron is vrijgegeven |
| **PostgreSQL** | Metadata, kwaliteit en een deel van de performancetools |
| **SAP HANA Cloud** | Metadata en kwaliteit |

## Connectoren

Connectoren koppelen systemen die geen database zijn. Ze lopen via het platform: de agent krijgt nooit zelf een
wachtwoord of token van zo'n systeem.

| Categorie | Connectoren |
| --- | --- |
| Rapportage | Power BI, SAP Analytics Cloud |
| Dataplatform | Microsoft Fabric, Databricks, SAP Datasphere |
| ETL en transformatie | Azure Data Factory, dbt Cloud, Matillion |
| Documenten | SharePoint, OneDrive, Google Drive |
| Ontwikkeling | Azure DevOps, GitLab |
| Eigen | Elke MCP-server van de klant, zie [eigen MCP-servers](https://plainwater.ai/nl/wiki/bronnen/eigen-mcp-servers) |

Bij Power BI kan een agent semantische modellen lezen en definities bewerken. Of een connector mag schrijven, stel je
per bron in. Een schrijfactie loopt altijd via een voorstel dat een mens goedkeurt.

## Een bron toevoegen

1. **Klant kiezen.** Een bron hoort altijd bij één klant.
2. **Soort en omgeving.** Bijvoorbeeld *SQL Server*, omgeving *productie*.
3. **Verbinding.** Server, database, login. Het wachtwoord wordt per bron versleuteld opgeslagen. De app toont daarna
   alleen een vingerafdruk en het moment waarop het is ingesteld.
4. **Verbindingstest.** Het platform probeert te verbinden en zegt wat er misgaat.
5. **Datatoegang.** Je kiest de stand: alleen metrics, versleutelde waarden of open. Zie
   [datatoegang](https://plainwater.ai/nl/wiki/concepten/datatoegang).
6. **Label.** Een korte naam die agents te zien krijgen. Gebruik daarin nooit de naam van de klant.

:::note Wat een agent van een bron ziet
Een agent ziet per bron alleen een id, de soort, de omgeving en het label. De technische naam en de sleutel van de bron
krijgt hij niet te zien.
:::

## Bronnen per opdracht

Een mens bepaalt welke bronnen bij een opdracht horen. Binnen die set kiest de agent zelf waarop hij werkt. Een subtaak
kan geen bron noemen die buiten de set valt. Zo werkt een agent die een vraag over financiën beantwoordt niet per ongeluk
op de HR-database.

## Een bron wijzigen of uitzetten

Verbinding, label en stand kun je wijzigen. De sleutel van een bron niet: die staat in de spelregels en een hernoeming
zou toestemmingen stilletjes verplaatsen. Wil je een bron niet meer gebruiken, zet hem dan uit. Verwijderen kan pas
als geen opdracht, dataset of spelregelversie er nog naar verwijst.

## Voorbeeld

Een retailer koppelt drie bronnen: het Azure SQL-warehouse (productie, stand *versleutelde waarden*), de Power
BI-werkruimte met het verkoopmodel (alleen lezen) en de Azure DevOps-repository met de ETL-code. Een opdracht "waarom
wijkt de omzet in het rapport af van het warehouse?" krijgt alle drie. De agent vergelijkt de DAX-definitie met de
SQL-view, vindt een filter op retouren dat alleen in het model zit, en stelt een wijziging voor in de repository. Een
mens keurt goed.

:::tip Lees verder
- [Eigen MCP-servers koppelen](https://plainwater.ai/nl/wiki/bronnen/eigen-mcp-servers)
- [Datatoegang per bron](https://plainwater.ai/nl/wiki/concepten/datatoegang)
- [Werkmodi](https://plainwater.ai/nl/wiki/concepten/werkmodi)
:::
