O projekcie DagSmith
DagSmith to wtyczka do Airflow (Airflow ≥ 3.1), która dodaje do interfejsu webowego Airflow pełny edytor DAGów: wizualny, blokowy canvas obok bezpośredniego edytora kodu — oba operujące na tym samym pliku .py.
Powstał z myślą o zespołach data engineering, które chcą szybkości wizualnego projektowania potoków bez rezygnacji z pełnej ekspresji ręcznie pisanych DAGów w Pythonie. W przeciwieństwie do zewnętrznych narzędzi do projektowania, żyjących poza Airflow, DagSmith to natywna wtyczka: bez osobnego serwisu, bez serwera synchronizacji, bez plików towarzyszących. Czyta i zapisuje te same pliki .py, które i tak uruchamia Twój scheduler.
Kod jest źródłem prawdy
DagSmith nigdy nie tworzy równoległej reprezentacji Twojego DAGa. Plik Pythona jest zawsze nadrzędny. Gdy edytujesz na canvasie, DagSmith parsuje Twój plik przez libcst, nakłada zmianę jako minimalną, chirurgiczną edycję i generuje plik na nowo — komentarze i formatowanie, których nie dotknąłeś, zostają identyczne co do bajtu. Edytując bezpośrednio kod, canvas parsuje plik ponownie i się aktualizuje.
Trzy poziomy wsparcia dla istniejącego kodu
- DAGi stworzone w DagSmith — pełna edycja wizualna, z zapamiętanym układem canvasa między sesjami.
- Typowe, ręcznie pisane DAGi —
with DAG(...),@dag,@task,>>/<<,chain(), zagnieżdżoneTaskGroupy,Labele na krawędziach — dostają pełną edycję wizualną bez naruszania Twojego formatowania. - Dynamiczne konstrukcje — pętle generujące zadania,
.partial().expand()— pojawiają się na canvasie jako tylko-do-odczytu bloki "opaque", zamiast psuć parser, i pozostają w pełni edytowalne w widoku kodu.
Jak to działa
Airflow UI ─▶ react_app "DagSmith" (React Flow canvas + CodeMirror)
│ REST /dagsmith/api/v1 (Airflow JWT)
▼
FastAPI app wewnątrz api-servera
│ parse (libcst) / codegen / walidacja (subprocess)
┌────────────┴────────────┐
Save / autosave Deploy (walidowany)
▼ ▼
Baza metadanych Airflow Pliki .py w bundle'u DAGów
(wersje draftów, (atomowy zapis, backup,
układ canvasa) wykrywanie konfliktów, git)Praca jest zapisywana jako wersjonowany draft we własnej bazie metadanych Airflow — scheduler nigdy nie widzi niedokończonej pracy. Plik .py na produkcji zmienia się dopiero po kliknięciu Deploy — po walidacji, z automatycznym backupem i wykrywaniem konfliktu, jeśli ktoś inny zmienił plik wcześniej.
Chcesz spróbować? Przejdź do Instalacji i konfiguracji.
Dag