Streamlit app
Generate Sources
Genereer automatisch dbt sources, stagingmodellen en projectconfiguratie vanuit Snowflake — via een lokale app met een grafische interface.

Doel
De generate_sources dbt-macro werkt prima in de terminal, maar deze Streamlit-app maakt het proces visueel: je kiest je database en schema's via dropdowns, ziet de gegenereerde code direct in syntaxkleuring, en schrijft de bestanden met één klik weg naar je dbt-project.
Handig bij het onboarden van nieuwe databronnen waarbij je snel een werkende staginglaag wil opzetten zonder handmatig YAML of SQL te schrijven.
Functies
Snowflake-verbinding
Sla je accountgegevens en wachtwoord lokaal op via keyring. De app onthoudt je vorige instellingen zodat je niet elke keer opnieuw hoeft in te loggen.
Database & schema selectie
Kies een database en filter op één of meerdere schema's. De app haalt tabel- en kolommetadata op via het Snowflake information schema.
Gegenereerde output
Bekijk de gegenereerde bestanden per tab met syntaxkleuring voordat je ze wegschrijft. Kies voor één gecombineerde sources.yml of een apart bestand per schema.
Bestanden wegschrijven
De app schrijft de gegenereerde bestanden direct naar je dbt-projectmap onder models/staging/ — inclusief de juiste mapstructuur.
Gegenereerde bestanden
| Bestand | Inhoud |
|---|---|
| sources.yml | Source-definities met kolommetadata, per schema of gecombineerd. |
| stg_*.sql | Stagingmodellen met select * from source() per tabel. |
| dbt_project.yml snippet | Configuratieblok voor de models-sectie, georganiseerd per schema. |
Gebruik
1. Installeer de vereisten
pip install -r streamlit/generate_sources/requirements.txt
2. Start de app
streamlit run streamlit/generate_sources/app.py
3. Verbind met Snowflake
Vul in de zijbalk je Snowflake-accountgegevens in. De app slaat deze lokaal op via keyring zodat je ze de volgende keer niet opnieuw hoeft in te voeren.
4. Genereer en schrijf weg
Selecteer een database en schema's, bekijk de gegenereerde code per tab, en klik op wegschrijven. De bestanden worden direct aangemaakt in de opgegeven dbt-projectmap.