amoghrajesh opened a new issue, #62345: URL: https://github.com/apache/airflow/issues/62345
### Body ## Background As part of decoupling connection form UI metadata from runtime hook imports, we are migrating `ui-field-behaviour` and `conn-fields` from Python hook methods (`get_ui_field_behaviour()` / `get_connection_form_widgets()`) into declarative `provider.yaml` files. This allows `ProvidersManager` to load connection form metadata without importing hook classes, improving startup performance and separating UI concerns from runtime execution. ### Progress so far - Phase 1 — Google, Amazon, Microsoft Azure, Hashicorp, Databricks, Snowflake (PR: https://github.com/apache/airflow/pull/62011) - Phase 2 — git, ssh, sftp, docker, cncf/kubernetes, standard, grpc, opensearch, datadog, influxdb (PR: https://github.com/apache/airflow/pull/62109) - Phase 3 — slack, discord, pagerduty, opsgenie, smtp, telegram, apprise (PR: https://github.com/apache/airflow/pull/62165) ## Remaining Providers ## Remaining providers | Provider | # Connection Types | Claimed by | |---|---|---| | `airbyte` | 1 | | | `alibaba` | 4 | | | `apache/hive` | 3 | | | `apache/iceberg` | 1 | | | `apache/kafka` | 1 | | | `apache/spark` | 4 | | | `arangodb` | 1 | | | `asana` | 1 | | | `cloudant` | 1 | | | `cohere` | 1 | | | `github` | 1 | | | `jdbc` | 1 | | | `jenkins` | 1 | | | `mongo` | 1 | | | `openai` | 1 | | | `openfaas` | 1 | | | `pinecone` | 1 | | | `postgres` | 1 | | | `qdrant` | 1 | | | `redis` | 1 | | | `salesforce` | 1 | | | `samba` | 1 | | | `teradata` | 1 | | | `trino` | 1 | | | `weaviate` | 1 | | | `yandex` | 1 | | | `ydb` | 1 | | | `zendesk` | 1 | | > **To claim a provider:** leave a comment saying you're working on it to avoid duplicate work. ## How to contribute? Follow https://github.com/apache/airflow/blob/main/contributing-docs/23_provider_hook_migration_to_yaml.rst broadly. - But in short you can do this in an venv with all airflow deps installed as per: https://github.com/apache/airflow/blob/main/contributing-docs/03a_contributors_quick_start_beginners.rst (cd into airflow repo and `uv sync --all-packages` should do the trick) - `python scripts/tools/generate_yaml_format_for_hooks.py --provider <name>` Example: `python scripts/tools/generate_yaml_format_for_hooks.py --provider mongo` The script will print `ui-field-behaviour` and/or `conn-fields` for each connection type defined in the provider. - Do not use the `update-yaml` flag, manually make edits to the provider.yml to avoid errors - If you want to quickly verify if it works at runtime, try running this snippet: ```python from airflow.providers.<name>.get_provider_info import get_provider_info for ct in get_provider_info().get('connection-types', []): print( ct.get('connection-type'), 'ui:', 'ui-field-behaviour' in ct, 'conn-fields:', list(ct.get('conn-fields', {}).keys()) ) ``` Once all the above instructions are done, open a PR with title: `Migrate <name> connection UI metadata to YAML` ### Committer - [x] I acknowledge that I am a maintainer/committer of the Apache Airflow project. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
