Git sync
Git sync maakt van een deel van je tenantconfiguratie een Git-beheerde gewenste staat.
Niet-technische gebruikers kunnen gewoon via de web-UI blijven werken, terwijl technische gebruikers
dezelfde configuratie ook via GitHub en een lokale IDE kunnen beheren.
Git sync is tenantbreed qua repo-instellingen, maar de actieve branch en werkmap zijn
per gebruiker. Twee editors kunnen dus tegelijk aan dezelfde tenant werken zonder elkaars
checkout direct te overschrijven.
Wat in Admin → Config blijft
- Repo koppelen of aanpassen voor de tenant.
- GitHub token of publieke remote instellen.
- Tenant-sleutels aanmaken of intrekken voor directe
git-server API-calls.
- Default branch, remote name en Git sync inschakeling beheren.
- Deze repo- en sleutelinstellingen beheren met Git Admin-permissie of superadmin-toegang.
- Secrets buiten Git houden en alleen tenantbrede sync-instellingen opslaan.
Wat Admin → Git beheert
- Git Admin-permissie voor all-user workspace-overzicht binnen de tenant.
- Per gebruiker branch, commit, dirty status, ahead/behind en conflicts zien.
- Diffs en recente commits voor de gekozen gebruikerswerkmap inspecteren.
- Commit, Push, Pull, Apply en Reset uitvoeren binnen tenant- en userscope.
- Open branch gebruiken wanneer de frontend previewguard dit toestaat voor de gekozen gebruikerswerkmap.
Wat Git sync nu beheert
- Datasources
- Datasource schema-/categoriedefinities
- Dashboard pages en page views
- Elements
- Tenantconfiguratie zonder gevoelige server-side velden
- Tenant runtime vars
Deze resourcefamilies worden naar een canonieke repo-structuur geschreven. De repo is dus geen ruwe
Firestore-dump, maar een leesbare configuratieboom met YAML en losse SQL-bestanden waar dat logisch is.
Secrets blijven buiten Git. Dat geldt ook voor gevoelige tenantconfig-velden zoals LLM-config en
notification sender-credentials. Runtime vars kunnen wel in Git; runtime secrets niet.
Verwachte repo-structuur
tenant.yaml
tenant-config/
resource.yaml
runtime-vars/
<var-id>/
resource.yaml
datasources/
<datasource-id>/
resource.yaml
query.sql
datasource-schemas/
<schema-id>/
resource.yaml
pages/
<page-id>/
resource.yaml
views/
<view-id>/
resource.yaml
query.sql
elements/
<element-id>/
resource.yaml
main.py
requirements.txt
files/...
Eerste setup
- Ga naar Administration → Config → Git sync.
- Zet Git sync aan voor de tenant.
- Vul Remote URL, Remote name en de standaardbranch in.
- Kies of de remote publiek is of een GitHub token nodig heeft.
- Sla de tenant Git sync instellingen op.
- Ga daarna naar Administration → Git voor werkmapstatus, Open Branch-voorwaarden en operationele Git-acties.
Voor private GitHub repo’s gebruik je een GitHub token in de tenantconfiguratie. Dat token is dus voor
git-server → GitHub authenticatie, niet voor eindgebruikerslogin in Dashview.
Bootstrap van een bestaande tenant
Gebruik Export naar werkmap wanneer een bestaande tenant nog niet volledig in de repo staat.
Deze actie:
- schrijft de huidige ondersteunde tenantresources naar de repo in
git-server
- vult ontbrekende mappen zoals
tenant-config/ en runtime-vars/ aan
- laat de wijzigingen als gewone lokale Git-wijzigingen in je werkmap staan
Daarna review je de diff, maak je bewust een commit met je eigen commitbericht en push je die commit naar de
gekozen branch.
Dagelijkse workflow in de web-UI
Na de bootstrap hoort normaal werk meestal niet meer via export te lopen. Gewone web-UI saves schrijven voor
ondersteunde resourcefamilies al door naar de Git-werkmap van de gebruiker en maken de repo dus dirty.
Gebruikers met Git Admin-permissie gebruiken Admin → Git
om die user workspaces binnen de tenant te controleren, diffs te lezen en handmatige Git-acties uit te
voeren. Automatische commits en pushes gebeuren alleen wanneer de gebruiker Auto Git aan
heeft in Admin → Gebruikers.
- Commit: opent een dialoog waarin je zelf het commitbericht invult.
- Push: stuurt je lokale commits naar de remote branch.
- Pull: haalt de remote branch binnen in je gebruikerswerkmap.
- Apply: schrijft de huidige repo-inhoud terug naar de live tenantresources in Dashview.
- Reset: zet je gebruikerswerkmap hard terug naar de remote branch en gooit ongepushte lokale Git-wijzigingen weg.
- Export naar werkmap: gebruik je vooral voor backfill of wanneer je handmatig de huidige Firestore-status opnieuw naar Git wilt schrijven.
Voor niet-technische editors kun je Auto Git inschakelen op hun gebruiker of permissiegroep.
De topbar Git-knoppen worden dan verborgen en ondersteunde saves committen en pushen automatisch naar de
ingestelde tenantrepo en branch.
In Admin → Git zien gebruikers met Git Admin-permissie per gebruiker de Git-werkmapstatus,
zoals branch, lokale wijzigingen, ahead/behind en conflicts. Zij kunnen daar ook status, log en diff bekijken,
of pull, commit, push, apply en reset uitvoeren binnen tenant- en userscope. Open branch
wisselt naar een user-scoped previewcontext wanneer de frontend previewguard dit toestaat, bijvoorbeeld
vanuit de eigen werkmap met bewerkrechten of als superadmin voor een andere gebruikerswerkmap. Git Admin is
tenant-scoped; globale superadmins hebben impliciet toegang, maar die platformrol is geen vereiste voor tenant
Git-beheer. Dezelfde Git Admin-permissie beheert ook repo remote/auth-configuratie en tenant git-server keys
in deze Tenant Config-sectie.
Voor Elements publiceert Apply niet automatisch. Als een repo-wijziging de saved draft van een
bestaand gepubliceerd Element aanpast, blijft de laatste gepubliceerde version actief en verschijnt het Element
in het overzicht als Updated draft. Publiceer het Element daarna handmatig om die draft live te maken.
Repo-status lezen
- Clean betekent dat je werkmap geen niet-gecommitte wijzigingen heeft.
- X local changes betekent dat ondersteunde saves al in je werkmap staan maar nog niet gecommit zijn.
- X ahead / X behind vergelijkt je lokale branch met de remote branch.
- No remote branch yet betekent dat je lokale branch nog niet op remote bestaat.
Wat Apply wel en niet doet
- Wel: bestaande repo-bestanden opnieuw inlezen en die resources updaten in Dashview.
- Niet: de hele tenant exact spiegelen of alles verwijderen wat niet in Git staat.
- Niet: een lege repo interpreteren als “verwijder de tenant”.
- Niet: gewijzigde Elements automatisch publiceren; apply werkt alleen de draft bij.
Dat betekent dat Apply veiliger is dan een destructieve full reconcile. Je kunt wel een
oudere versie van een page, datasource, Element, tenantconfig of runtime var terugzetten, maar niet per ongeluk de hele
tenant weggooien doordat een map ontbreekt.
Lokale IDE workflow
Voor technische gebruikers is de gedeelde waarheid de externe Git remote, bijvoorbeeld GitHub. Je IDE werkt
dus niet direct tegen de interne git-server repo, maar tegen dezelfde remote als Dashview.
- Clone de GitHub repo lokaal.
- Werk in een branch en push naar GitHub.
- Ga terug naar Dashview en klik Pull.
- Klik daarna Apply om de gepullte Git-status live te maken in Dashview.
De andere richting werkt ook: wijzigingen die je in Dashview maakt komen als lokale wijzigingen in de
gebruikerswerkmap van git-server, waarna je zelf Commit en daarna
Push uitvoert.
Branches en conflicts
- Branchwissels zijn per gebruiker/workspace.
- Een gewone branch switch gooit geen lokale wijzigingen weg.
- Open branch in Admin Git opent geen GitHub. De actie wisselt de Dashview-previewcontext naar de gekozen branch.
- Wisselen naar een bestaande branch preview past Git-bestanden niet automatisch toe op de draaiende preview tenant. Gebruik Apply wanneer je de huidige repo-status op die preview tenant wilt toepassen.
- De eerste switch naar een nieuwe branch preview bootstrapt die preview tenant eenmalig vanuit de branch.
- Als push of auto Git faalt door remote conflicts, gebruik dan Admin Git met Git Admin-permissie om conflictbestanden, relevante diff en aanbevolen stappen te bekijken voordat je wijzigt.
- Los conflicts op door de conflicted files te inspecteren, de final content te bewerken, resolved te markeren of te stagen, en daarna bewust te committen, pullen of pushen.
- Als je gewoon terug wilt naar de remote branch, gebruik dan Reset.
Reset is de expliciete destructieve actie. Dat is bewust: een simpele branchwissel mag niet stilletjes
ongepushte lokale commits, merge-state of de draaiende configuratie van een bestaande preview tenant vervangen.
Tenant git-server keys
Tenant Git-server keys zijn niet hetzelfde als je GitHub token. Ze zijn bedoeld voor directe programmatische
toegang tot git-server, bijvoorbeeld vanuit een CLI, CI-job of eigen script.
- GitHub token: laat
git-server pull/push doen tegen je private GitHub repo.
- Tenant git-server key: laat een tool of script direct praten met
git-server.
Gebruik je alleen de gewone Dashview web-UI en GitHub zelf, dan heb je die tenant key meestal niet nodig.