Instalacja i konfiguracja
Wymagania
| Komponent | Wersja |
|---|---|
| Apache Airflow | ≥ 3.1 (używa API wtyczek react_apps + fastapi_apps; brak wsparcia dla Airflow 2.x) |
| Python | ≥ 3.10 |
| Baza metadanych | zalecany PostgreSQL (DagSmith trzyma drafty we własnych tabelach dagsmith_*) |
| Dostęp do plików | do 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 AirflowWtyczka 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.
Dag