Integrations

App connections

Per-app API credentials, redirect URLs and secrets for connecting external apps.

This page is available in Polish only for now. The commands, code and API calls below are the same in every language — an English translation is on its way. Open the Polish page

Integracje → Połączenia aplikacji to najprostszy sposób na podłączenie aplikacji webowej, mobilnej, backendu albo automatyzacji (n8n, Make, Zapier) do projektu.

Co dostajesz

  • Klucz aplikacji — JWT podpisany sekretem projektu, z rolą (anon, authenticated, service_role lub dedykowaną rolą Postgres), nazwą aplikacji w claimie app i datą wygaśnięcia.
  • Adresy przekierowań logowania (OAuth, magic link) — dopisywane automatycznie do listy dozwolonych adresów Auth (także schematy mobilne, np. myapp://auth/callback).
  • Sekret podpisu webhooków — zapisany w Vault, do weryfikacji wywołań między aplikacją a Edge Functions lub Database Webhooks.
  • Gotowe pliki .env dla Next.js, Vite, Expo, Fluttera, serwerów oraz nagłówki HTTP dla automatyzacji.

Jak używać klucza

Brama przyjmuje w nagłówku apikey wyłącznie klucz anon lub service_role projektu. Klucz aplikacji wysyłasz w Authorization: Bearer … — to on wyznacza rolę w bazie.

const db = createClient(process.env.SUPABASE_URL, process.env.SUPABASE_ANON_KEY, {
  global: { headers: { Authorization: `Bearer ${process.env.HOSTBASE_APP_TOKEN}` } },
});

Dedykowana rola

Dla backendów i automatyzacji zalecamy dedykowaną rolę (app_<nazwa>_…) — na start nie ma żadnych uprawnień, więc nadajesz tylko to, czego aplikacja potrzebuje:

grant select, insert on public.zamowienia to app_raporty_ab12cd;

Unieważnianie

Unieważnienie połączenia z dedykowaną rolą usuwa rolę z bazy — klucz przestaje działać natychmiast. Klucze z rolami współdzielonymi pozostają ważne do daty wygaśnięcia; aby odciąć je wcześniej, obróć sekret JWT w Ustawienia → Klucze JWT.