Integrations

Workflowy z pgflow

Silnik workflowów na Postgresie i Edge Functions: instalacja, worker, uruchamianie i podgląd przebiegów.

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

pgflow (Apache-2.0) definiuje workflowy w TypeScript jako graf kroków z zależnościami, ponowieniami i fan-outem; stan trzyma w Postgresie (schemat pgflow), a zadania rozdziela przez kolejki pgmq.

Instalacja

Integracje → Workflowy (pgflow) → Zainstaluj wgrywa migracje z pakietu @pgflow/core (zapisane w historii migracji projektu, zgodnie z supabase db push), a następnie:

  • wyłącza telemetrię pgflow (anonimowe dzienne statystyki do telemetry.pgflow.dev — możesz ją włączyć w panelu),
  • ustawia sekret Edge Functions EDGE_WORKER_DB_URL,
  • zastępuje nadzór workerów pgflow (zakłada adresy *.supabase.co) zadaniem pg_cron, które co 30 s budzi workery pod https://<ref>.host.ulewicz.space/functions/v1/<nazwa>.

Worker

Utwórz Edge Function z szablonu Worker pgflow i wywołaj ją raz — przy starcie worker kompiluje flow w bazie:

import { EdgeWorker } from "jsr:@pgflow/edge-worker@0.17.2";
import { Flow } from "npm:@pgflow/dsl@0.17.2";

const Powitanie = new Flow<{ imie: string }>({ slug: "powitanie" })
  .step({ slug: "tekst" }, (input) => "Cześć, " + input.imie + "!");

EdgeWorker.start(Powitanie);

Uruchamianie

select * from pgflow.start_flow('powitanie', '{"imie": "Ala"}'::jsonb);

Panel pokazuje flows, przebiegi (filtr po statusie), kroki z czasami, liczbą prób, błędami i wynikami.