Instalacja i konfiguracja

Wymagania

KomponentWersja
Apache Airflow≥ 3.1 (używa API wtyczek react_apps + fastapi_apps; brak wsparcia dla Airflow 2.x)
Python≥ 3.10
Baza metadanychzalecany PostgreSQL (DagSmith trzyma drafty we własnych tabelach dagsmith_*)
Dostęp do plikówdo Deployu api-server Airflow potrzebuje dostępu do zapisu w katalogu bundle'a DAGów; praca na draftach nie wymaga żadnego dostępu do plików

Instalacja

pip install airflow-dagsmith   # w środowisku, w którym działa api-server Airflow

Wtyczka rejestruje się sama przez entry point airflow.plugins — nie kopiuj niczego do $AIRFLOW_HOME/plugins. Po restarcie api-servera, DagSmith pojawia się w nawigacji Airflow. Tabele dagsmith_* tworzą się automatycznie przy starcie (albo uruchom ręcznie python -m dagsmith db upgrade).

Włączanie Deployu

Dla bezpieczeństwa zapis plików .py jest domyślnie wyłączony— bez tego DagSmith działa wyłącznie w trybie odczytu i draftów. Włącz go świadomie w airflow.cfg:

[dagsmith]
deploy_enabled = True
# opcjonalne wzmocnienie / podział na zespoły:
# editors   = data-platform-team     # kto może tworzyć i edytować drafty
# deployers = admin                  # kto może zapisywać pliki .py
# admins    = admin                  # kto zarządza zespołami
# git_commit = True                  # commituj do checkoutu bundle'a przy deployu

(albo równoważna zmienna środowiskowa AIRFLOW__DAGSMITH__DEPLOY_ENABLED=True itd.)

Uwaga bezpieczeństwa: deploy DAGa z UI to dokładnie to samo, co wykonanie dowolnego kodu w Twoim środowisku Airflow — tak jak każdy inny sposób dostarczenia pliku DAGa. Włącz deploy_enabled tylko przy odpowiedniej kontroli dostępu do UI Airflow. Walidacja importu wykonuje górny poziom pliku w izolowanym, ograniczonym czasowo podprocesie. Pełny model opisuje Bezpieczeństwo i uprawnienia.