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]

Reply via email to