Integraties
Supabase
De Supabase-integratie van Tidal Control haalt bewijs over beveiliging en compliance op uit je Supabase-organisaties en -projecten. De verbinding authenticeert met een personal access token tegen de Supabase Management API (https://api.supabase.com) en dekt toegangsbeheer op organisatieniveau, het authenticatiebeleid voor eindgebruikers, publieke blootstelling van data, versleuteling onderweg en de back-upsituatie.
Wat deze integratie monitort
- Organisatieleden: MFA-inschrijving per lid, en wie de rol Owner of Administrator heeft
- API-sleutels: Of de niet-intrekbare verouderde
anon- enservice_role-sleutels nog in gebruik zijn - Opslagbuckets: Buckets die elk object via een publieke URL aanbieden
- Edge functions: Functies die zonder JWT-verificatie zijn uitgerold, en dus open endpoints op internet zijn
- Security advisor: De eigen bevindingen van Supabase, zoals tabellen in het publieke schema zonder row-level security
- Database: SSL-afdwinging, IP-allowlist, verbindingslogging en de rijlimiet op de gegenereerde data-API
- Back-ups: Point-in-time recovery en de ouderdom van de meest recente voltooide back-up
- Authenticatie: Wachtwoordbeleid, beschikbaarheid van MFA, e-mailbevestiging, rotatie van refreshtokens, geldigheidsduur van accesstokens en captcha bij registratie
- JWT-ondertekeningssleutels: Of tokens met een asymmetrische sleutel worden ondertekend in plaats van met het verouderde gedeelde secret
- Preview-branches: Branches die met een kopie van productiedata zijn aangemaakt
Tidal Control leest alleen configuratie. Tabelrijen, opgeslagen SQL-snippets en de broncode van edge functions worden nooit opgevraagd.
Vereisten
- De rol Super User in Tidal Control
- Een Supabase-account met een rol in de organisatie die je wilt beoordelen
- Rechten om access tokens aan te maken onder Account → Access Tokens
Behandel het token als een bevoorrecht credential. De integratie heeft leesrechten op de API-sleutels van projecten nodig om te kunnen melden of verouderde sleutels nog in gebruik zijn. Diezelfde permissie geeft ook de secret- en service_role-sleutels terug, die volledige datatoegang bieden en row-level security omzeilen. Tidal Control gooit het sleutelmateriaal weg en bewaart alleen het type en de prefix, maar wie het token in handen heeft kan die sleutels zelf ophalen. Maak het token aan vanuit een speciaal serviceaccount, niet vanuit een persoonlijk account.
Een token kiezen
Supabase geeft twee soorten personal access token uit. Beide beginnen met sbp_ en beide werken, maar ze verschillen in wat ze kunnen bereiken.
| Tokentype | Prefix | Gebonden aan |
|---|---|---|
| Scoped token (aanbevolen) | sbp_fc... | De organisaties, projecten en permissies die je bij het aanmaken kiest |
| Klassiek token | sbp_... | Alles wat het uitgevende account mag, inclusief organisaties waar het later lid van wordt |
Kies een scoped token. Daarmee beperk je de integratie tot één organisatie en tot de leespermissies hieronder. Een scoped token kan alleen versmallen wat het uitgevende account al mag, dus de organisatierol van dat account blijft het plafond. De zwakste rol die alle permissies dekt is Read-Only, beschikbaar op de Team- en Enterprise-plannen; op Free en Pro is Developer de zwakste beschikbare rol.
Project-API-sleutels (anon, service_role, publishable, secret) zijn iets anders. Die bereiken het datavlak van een project, niet de Management API, en de integratie kan er niets mee.
Permissies voor een scoped token
Geef Read op elk van de volgende onderdelen. Niets heeft Write nodig, en de integratie vraagt geen Database, Logs, Edge Function Secrets of SQL Snippets aan.
| Permissie (Read) | Gebruikt voor |
|---|---|
| Organizations, Organization Settings | Organisatie-inventaris en plan |
| Organization Members | MFA-inschrijving en rollen per lid |
| Projects, Project Settings | Projectinventaris, regio en servicestatus |
| Advisors | Bevindingen van de security advisor, inclusief row-level security |
| Network Restrictions, SSL Enforcement | Netwerk- en transportcontroles van de database |
| Database Backups | Point-in-time recovery en versheid van back-ups |
| Auth Config, Auth Signing Keys | Authenticatiebeleid en JWT-ondertekeningssleutels |
| Storage | Controle op publieke buckets |
| Edge Functions | Controle op JWT-verificatie |
| API Keys | Controle op verouderde sleutels |
| Data API Config, Database Config | Rijlimiet en verbindingslogging |
| Production Branches | Controle op data in preview-branches |
Een ontbrekende permissie stopt niet de hele run. De controles die ervan afhangen falen met een autorisatiefout, en de rest gaat door.
Stappenplan voor de configuratie
We maken een personal access token aan in het Supabase-dashboard en voegen daarna de verbinding toe in Tidal Control. Kies een scoped token als die optie beschikbaar is voor je account.
Configuratiestappen:
- Maak een personal access token aan
- Configureer de integratie in Tidal Control
Stap 1: Maak een personal access token aan
- Log in op het Supabase-dashboard met het serviceaccount
- Ga naar Account → Access Tokens, of open https://supabase.com/dashboard/account/tokens direct
- Klik op Generate new token en geef het een naam, bijvoorbeeld
Tidal Control - Als je permissies kunt selecteren, kies dan een scoped token, selecteer de organisatie die je wilt beoordelen en geef de Read-permissies uit de tabel hierboven
- Ontbreekt de permissieselectie, dan zijn scoped tokens nog niet beschikbaar voor je account. Vraag vervroegde toegang aan bij Supabase, of maak een klassiek token aan met het speciale serviceaccount. Een klassiek token heeft alle rechten van dat account binnen elke organisatie waarvan het lid is
- Controleer de vervaldatum van het token en plan de rotatie voor die datum
- Kopieer het token direct: het wordt maar één keer weergegeven
Het token wordt één keer weergegeven. Sluit je het venster zonder te kopiëren, trek het token dan in en genereer een nieuw exemplaar.
Stap 2: Configureer de integratie in Tidal Control
- Ga naar Instellingen → Integraties in Tidal Control
- Klik op het plusicoon naast Supabase
- Vul de configuratie in:
- Naam: Een beschrijvende naam, bijvoorbeeld
Supabase - Personal access token: Het
sbp_...-token uit stap 1
- Naam: Een beschrijvende naam, bijvoorbeeld
- Klik op "Aanmaken" om de integratie op te slaan
Configuratievelden uitgelegd
Het configuratievenster vraagt om de volgende waarden:
Naam:
- Een beschrijvende naam voor deze verbinding
- Bijvoorbeeld:
Supabase,Supabase Productie
Personal access token:
- Het scoped of klassieke token uit stap 1, beginnend met
sbp_ - Verplicht, en wordt als secret opgeslagen
- Er is geen organisatie- of project-ID nodig. Het token bepaalt zelf welke organisaties het kan bereiken
Verificatie
De integratie werkt wanneer al het volgende waar is:
- Instellingen → Integraties toont Supabase onder Geconfigureerde integraties
- De Supabase-tests zijn beschikbaar in de sectie Tests
- Het verversen van tests levert resultaten zonder authenticatiefouten
Veelgestelde vragen
Heb ik een organisatie- of project-ID nodig? Nee. Een scoped token draagt de geselecteerde organisaties al in zich, en een klassiek token bereikt elke organisatie waar het account lid van is.
Kan Tidal Control de data in mijn database zien? Nee. De integratie leest de Management API, die configuratie blootgeeft. Tabellen, opgeslagen SQL-snippets en de broncode van edge functions worden nooit opgevraagd, en de permissies Database en SQL Snippets worden niet aangevraagd.
Waarom falen de tests over netwerkbeperkingen en point-in-time recovery op mijn Free-organisatie? Beide zijn betaalde functies. Op een Free-plan melden de endpoints de functie als niet beschikbaar, en de tests falen omdat de bescherming ontbreekt, wat de reden ook is. Het plan van de organisatie staat in het bewijs, zodat een beoordelaar een ontbrekende licentie van een misconfiguratie kan onderscheiden.
Wat gebeurt er met gepauzeerde projecten? Een gepauzeerd project staat nog in de inventaris, maar beantwoordt weinig projectendpoints en levert geen buckets, functies of adviesbevindingen op. Lees die afwezigheid af aan de projectstatus, niet als een geslaagde test.
Hoe roteer ik het token? Supabase ondersteunt een zelfgekozen vervaldatum voor personal access tokens. Controleer de ingestelde vervaldatum en roteer het token voor die datum, zodat het verzamelen van bewijs doorgaat. Genereer een nieuw token, werk de verbinding in Tidal Control bij en trek daarna het oude in. Het intrekken van het ene token raakt de andere niet.
Veelvoorkomende problemen
"Personal access token is required"
- Het veld is leeg, of de gekopieerde waarde is verloren. Genereer een nieuw token
Authenticatiefout op elke test
- Het token is onjuist, verlopen, ingetrokken of ongeldig. Controleer de vervaldatum en vervang het token als het verlopen is. Controleer of het met
sbp_begint en een personal access token is, geenanon- ofservice_role-sleutel van een project
Sommige tests falen met een autorisatiefout terwijl andere slagen
- Het scoped token mist een Read-permissie uit de tabel hierboven, of de organisatierol van het account is te zwak. Voeg de permissie toe, of geef het token uit vanuit een account met minimaal de rol Read-Only
Een project toont geen buckets, functies of adviesbevindingen
- Het project heeft ze niet, of het is gepauzeerd. Controleer de projectstatus in het Supabase-dashboard
Kom je er niet uit?
Stuur een e-mail naar support@tidalcontrol.com, dan nemen we zo snel mogelijk contact met je op.
Verzamel supportinformatie: Noteer welke browser je gebruikt, de exacte foutmeldingen en welke stappen je al hebt geprobeerd. Dat versnelt de oplossing aanzienlijk.