{"id":14414,"library":"airbyte-source-declarative-manifest","title":"Airbyte Declarative Manifest Source","description":"This library serves as the base source implementation for low-code Airbyte connectors, allowing users to define data sources using a YAML-based declarative manifest. It interprets these manifests to run data synchronization processes without requiring extensive Python coding. The current version is 6.5.2, and it follows the Airbyte platform's rapid release cadence, with major platform updates typically monthly, influencing the underlying CDK and manifest capabilities.","status":"active","version":"6.5.2","language":"en","source_language":"en","source_url":"https://github.com/airbytehq/airbyte","tags":["airbyte","etl","data-integration","declarative","low-code","cdk"],"install":[{"cmd":"pip install airbyte-source-declarative-manifest","lang":"bash","label":"Install latest version"}],"dependencies":[{"reason":"This library is a specific implementation used by the Airbyte CDK to run declarative connectors, requiring the CDK's core functionalities.","package":"airbyte-cdk","optional":false}],"imports":[{"note":"The `airbyte-source-declarative-manifest` package provides the underlying engine; users interact with it primarily through the `airbyte-cdk`'s `DeclarativeSource` class to define and run connectors.","wrong":"from airbyte_source_declarative_manifest import DeclarativeSource","symbol":"DeclarativeSource","correct":"from airbyte_cdk.sources.declarative.declarative_source import DeclarativeSource"}],"quickstart":{"code":"import json\nimport os\nfrom pathlib import Path\n\nfrom airbyte_cdk.sources.declarative.declarative_source import DeclarativeSource\n\n# Create a dummy manifest file for demonstration\nmanifest_content = \"\"\"\nversion: \"0.3.0\"\nresolver:\n  type: \"inline\"\nschemas:\n  streams:\n    - name: \"example_stream\"\n      retriever:\n        type: \"simple\"\n        requester:\n          url_base: \"https://jsonplaceholder.typicode.com\"\n          path: \"/todos/1\"\n          http_method: \"GET\"\n          authenticator:\n            type: \"no_auth\"\n        record_selector:\n          field_path: []\n      stream_mapper:\n        type: \"simple\"\n      primary_key: []\n      transformations: []\n\"\"\"\n\n# Save the manifest to a temporary file\nmanifest_path = Path(\"temp_manifest.yaml\")\nmanifest_path.write_text(manifest_content)\n\n# Define the config for the source (can be empty if not needed by manifest)\nconfig = {}\n\n# Initialize the declarative source\nsource = DeclarativeSource(str(manifest_path))\n\n# Run a check operation (or other CDK operations like discover, read)\n# This is how Airbyte internally invokes the source.\nstatus = source.check(None, config)\n\nprint(f\"Source check status: {status.status.value}\")\n\n# Clean up the temporary manifest file\nmanifest_path.unlink()\n","lang":"python","description":"This quickstart demonstrates how to programmatically use the `DeclarativeSource` from `airbyte-cdk` to load and interact with a declarative manifest. This is how the `airbyte-source-declarative-manifest` library is implicitly used. It defines a minimal YAML manifest, saves it, and then runs a 'check' operation against it. In a real Airbyte deployment, the platform would handle loading the manifest and invoking the source."},"warnings":[{"fix":"Consult Airbyte's official documentation for Declarative OAuth 2.0 to update your connector manifest's authentication section. Ensure `airbyte-cdk` and `airbyte-source-declarative-manifest` are updated to compatible versions.","message":"Declarative OAuth 2.0 was introduced in Airbyte 1.5.0. Existing declarative connectors using older OAuth configurations may require manifest updates to align with the new, standardized OAuth 2.0 flow, particularly within the connector builder context.","severity":"breaking","affected_versions":"Airbyte platform versions < 1.5.0 when upgrading to 1.5.0+"},{"fix":"Regularly check Airbyte's release notes and declarative connector documentation when upgrading `airbyte-cdk` or `airbyte-source-declarative-manifest`. Validate your manifest against the latest schema, especially for breaking changes in components or data types.","message":"The schema for declarative manifests evolves. A manifest created for an older `airbyte-cdk` or `airbyte-source-declarative-manifest` version might become incompatible with newer versions due to changes in component definitions, available features, or required configurations.","severity":"gotcha","affected_versions":"All versions across major updates."},{"fix":"Thoroughly validate your YAML manifest using a linter. Utilize Airbyte's connector builder for initial development and testing. Increase logging verbosity and examine Airbyte job logs carefully for clues related to manifest parsing or component execution.","message":"Debugging declarative sources can be more challenging than programmatic ones. Errors often manifest as cryptic YAML parsing issues, misconfigurations of declarative components, or unexpected behavior due to implicit logic, rather than explicit Python stack traces.","severity":"gotcha","affected_versions":"All versions"}],"env_vars":null,"last_verified":"2026-04-16T00:00:00.000Z","next_check":"2026-07-15T00:00:00.000Z","problems":[{"fix":"Use a YAML linter (e.g., `yamllint`) to identify syntax errors. Pay close attention to indentation, which is crucial in YAML. Ensure all keys are followed by a colon and a space.","cause":"The YAML manifest file has incorrect syntax, often due to indentation errors, missing colons, or improper key-value structure.","error":"yaml.parser.ParserError: while parsing a block mapping"},{"fix":"Double-check the component name against Airbyte's official documentation for declarative components. Ensure your `airbyte-cdk` and `airbyte-source-declarative-manifest` packages are up to date and compatible with the components you are trying to use.","cause":"The declarative manifest references a component (e.g., a retriever, authenticator, or transformation) that is either misspelled or not available in the installed version of `airbyte-source-declarative-manifest` or `airbyte-cdk`.","error":"airbyte_cdk.sources.declarative.exceptions.ComponentNotFoundException: Component 'MyCustomComponent' not found in registry."},{"fix":"Review the Airbyte documentation for Declarative OAuth 2.0 for the correct manifest structure and required parameters. Verify your client ID, client secret, and refresh token (if applicable) are correctly configured in the manifest or environment variables.","cause":"The OAuth 2.0 configuration in the declarative manifest is incorrect, possibly due to outdated fields or misconfigured parameters after the introduction of Declarative OAuth 2.0.","error":"Failed to authenticate with OAuth 2.0 client credentials."}],"ecosystem":"pypi"}