Katalog providerów i połączenia
DagSmith nie ma ręcznie utrzymywanej listy bloków operatorów. Zamiast tego introspektuje, jakie providery Airflow są faktycznie zainstalowane w Twoim środowisku, przez ProvidersManager, i na tej podstawie buduje paletę.
Jak powstaje formularz parametrów bloku
- Każda podklasa
BaseOperatorudostępniana przez zainstalowany provider staje się blokiem. - Jej formularz parametrów pochodzi z sygnatury
__init__— przechodzonej przez całą hierarchię klas (MRO) dla operatorów, które przekazują**kwargsdo rodzica (częste w rodzinie operatorów SQL, jak Teradata czy Snowflake, przekazującychsql,parametersitd. do wspólnej klasy bazowej). - Proste typy (
str,int,bool, literały,dict) dostają dopasowany, typowany edytor; wszystko inne staje się polem z surowym wyrażeniem Pythona, walidowanym przezastprzy generowaniu kodu i odtwarzanym jako tekst źródłowy przez parser.
Katalog jest cache'owany (konfigurowalny TTL) i serwowany z ETagiem, więc paleta zostaje szybka nawet przy setkach bloków z kilkudziesięciu providerów.
Wybór połączeń (connection picker)
Każdy parametr nazwany jak *conn_id renderuje się jako lista rozwijana wypełniona Twoimi połączeniami Airflow — czytanymi bezpośrednio z tabeli connection (oraz ze zmiennych środowiskowych AIRFLOW_CONN_*), nigdy przez sesję ORM Airflow. Połączenia, których typ pasuje do prefiksu parametru (np. teradata_conn_id → teradata), są sortowane na górze. Wolny tekst dalej jest dozwolony, bo połączeń z secrets-backendu nie da się w ten sposób wyliczyć.
Dag