{"id":20933,"library":"apache-airflow-providers-cloudant","title":"Apache Airflow Providers Cloudant","description":"Apache Airflow provider for Cloudant (a hosted Apache CouchDB service). Current version 4.3.4, compatible with Airflow >=2.6 and Python >=3.10. Released approximately monthly.","status":"active","version":"4.3.4","language":"python","source_language":"en","source_url":"https://github.com/apache/airflow/tree/main/providers/cloudant","tags":["airflow","cloudant","couchdb","database","provider"],"install":[{"cmd":"pip install apache-airflow-providers-cloudant","lang":"bash","label":"Install provider"},{"cmd":"pip install apache-airflow[cloudant]","lang":"bash","label":"Install via Airflow extras"}],"dependencies":[],"imports":[{"note":"The hook is used in operators and sensors; no common wrong import known.","symbol":"CloudantHook","correct":"from airflow.providers.cloudant.hooks.cloudant import CloudantHook"},{"note":"The main operator to create a document.","symbol":"CloudantCreateDocumentOperator","correct":"from airflow.providers.cloudant.operators.cloudant import CloudantCreateDocumentOperator"},{"note":"Operator to retrieve data from Cloudant.","symbol":"CloudantGetDataOperator","correct":"from airflow.providers.cloudant.operators.cloudant import CloudantGetDataOperator"},{"note":"Operator to delete a document.","symbol":"CloudantDeleteDocumentOperator","correct":"from airflow.providers.cloudant.operators.cloudant import CloudantDeleteDocumentOperator"},{"note":"Sensor for Cloudant. Some older documentation may reference a different import.","symbol":"CloudantSensor","correct":"from airflow.providers.cloudant.sensors.cloudant import CloudantSensor"}],"quickstart":{"code":"from datetime import datetime\nfrom airflow import DAG\nfrom airflow.providers.cloudant.hooks.cloudant import CloudantHook\nfrom airflow.providers.cloudant.operators.cloudant import CloudantCreateDocumentOperator\n\ndefault_args = {\n    'owner': 'airflow',\n    'start_date': datetime(2024, 1, 1),\n}\n\nwith DAG('cloudant_example', default_args=default_args, schedule_interval=None) as dag:\n    create_doc = CloudantCreateDocumentOperator(\n        task_id='create_doc',\n        cloudant_conn_id='cloudant_default',\n        database='my_database',\n        doc={'name': 'example', 'value': 42},\n    )","lang":"python","description":"Minimal DAG that creates a document in Cloudant. Requires a Cloudant connection defined in Airflow with the 'cloudant_default' conn_id."},"warnings":[{"fix":"Set connection type to 'cloudant' and host to 'https://<account>.cloudant.com'.","message":"The Cloudant connection type has changed in recent versions. Use 'cloudant' as the connection type, not 'http' or 'couchdb'. The host field should contain the full URL (e.g., https://account.cloudant.com).","severity":"gotcha","affected_versions":">=3.0.0"},{"fix":"Use new import paths: 'from airflow.providers.cloudant.hooks.cloudant import CloudantHook'.","message":"Breaking change: In version 4.0.0, the provider was restructured. Old imports like 'from airflow.contrib.hooks.cloudant_hook import CloudantHook' no longer work.","severity":"breaking","affected_versions":">=4.0.0"},{"fix":"Check the pinned version of 'cloudant' in the provider's dependencies if you encounter issues. Alternatively, consider migrating to the official CouchDB client.","message":"The 'cloudant' package (the Python client library) is now in maintenance mode. The provider uses it internally, but you may need to pin versions if you see compatibility issues with future Airflow releases.","severity":"deprecated","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Define a connection in Airflow UI or via environment variable: export AIRFLOW_CONN_CLOUDANT_DEFAULT='cloudant://user:pass@account.cloudant.com:443/my_database'","cause":"The Cloudant connection is not configured in Airflow.","error":"airflow.exceptions.ConnectionNotFoundException: The conn_id `cloudant_default` isn't defined"},{"fix":"Upgrade to the latest version and use 'from airflow.providers.cloudant.hooks.cloudant import CloudantHook'.","cause":"Installed version is too old (pre-4.0.0) or import path is incorrect.","error":"ImportError: cannot import name 'CloudantHook' from 'airflow.providers.cloudant.hooks'"},{"fix":"Ensure the host in the connection includes 'https://' and the full domain (e.g., 'https://account.cloudant.com').","cause":"Hostname in connection is incorrect (missing scheme or wrong domain).","error":"urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='account.cloudant.com', port=443): Max retries exceeded with url: /my_database/ (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at ...>: Failed to establish a new connection: [Errno -2] Name or service not known'))"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}