airbyte-agent-amazon-ads 0.1.21__tar.gz → 0.1.23__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/CHANGELOG.md +10 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/PKG-INFO +4 -4
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/README.md +3 -3
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/executor/local_executor.py +4 -3
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/http/adapters/httpx_adapter.py +10 -1
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/base.py +11 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/validation.py +22 -1
- airbyte_agent_amazon_ads-0.1.23/airbyte_agent_amazon_ads/_vendored/connector_sdk/validation_replication.py +970 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/connector.py +1 -1
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/connector_model.py +1 -1
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/pyproject.toml +1 -1
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/.gitignore +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/AUTH.md +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/REFERENCE.md +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/__init__.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/__init__.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/__init__.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/auth_strategies.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/auth_template.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/cloud_utils/__init__.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/cloud_utils/client.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/connector_model_loader.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/constants.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/exceptions.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/executor/__init__.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/executor/hosted_executor.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/executor/models.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/extensions.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/http/__init__.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/http/adapters/__init__.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/http/config.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/http/exceptions.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/http/protocols.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/http/response.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/http_client.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/introspection.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/logging/__init__.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/logging/logger.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/logging/types.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/observability/__init__.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/observability/config.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/observability/models.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/observability/redactor.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/observability/session.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/performance/__init__.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/performance/instrumentation.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/performance/metrics.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/__init__.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/components.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/connector.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/extensions.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/operations.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/schema/security.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/secrets.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/telemetry/__init__.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/telemetry/config.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/telemetry/events.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/telemetry/tracker.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/types.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/_vendored/connector_sdk/utils.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/models.py +0 -0
- {airbyte_agent_amazon_ads-0.1.21 → airbyte_agent_amazon_ads-0.1.23}/airbyte_agent_amazon_ads/types.py +0 -0
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
# Amazon Ads changelog
|
|
2
2
|
|
|
3
|
+
## [0.1.23] - 2026-01-30
|
|
4
|
+
- Updated connector definition (YAML version 1.0.5)
|
|
5
|
+
- Source commit: 5f65d643
|
|
6
|
+
- SDK version: 0.1.0
|
|
7
|
+
|
|
8
|
+
## [0.1.22] - 2026-01-30
|
|
9
|
+
- Updated connector definition (YAML version 1.0.4)
|
|
10
|
+
- Source commit: 5b20f488
|
|
11
|
+
- SDK version: 0.1.0
|
|
12
|
+
|
|
3
13
|
## [0.1.21] - 2026-01-30
|
|
4
14
|
- Updated connector definition (YAML version 1.0.4)
|
|
5
15
|
- Source commit: a3729d85
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: airbyte-agent-amazon-ads
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.23
|
|
4
4
|
Summary: Airbyte Amazon-Ads Connector for AI platforms
|
|
5
5
|
Project-URL: Homepage, https://github.com/airbytehq/airbyte-agent-connectors
|
|
6
6
|
Project-URL: Documentation, https://docs.airbyte.com/ai-agents/
|
|
@@ -135,7 +135,7 @@ See the official [Amazon-Ads API reference](https://advertising.amazon.com/API/d
|
|
|
135
135
|
|
|
136
136
|
## Version information
|
|
137
137
|
|
|
138
|
-
- **Package version:** 0.1.
|
|
139
|
-
- **Connector version:** 1.0.
|
|
140
|
-
- **Generated with Connector SDK commit SHA:**
|
|
138
|
+
- **Package version:** 0.1.23
|
|
139
|
+
- **Connector version:** 1.0.5
|
|
140
|
+
- **Generated with Connector SDK commit SHA:** 580ea1221eff062f41b1065a155124c85861cb18
|
|
141
141
|
- **Changelog:** [View changelog](https://github.com/airbytehq/airbyte-agent-connectors/blob/main/connectors/amazon-ads/CHANGELOG.md)
|
|
@@ -102,7 +102,7 @@ See the official [Amazon-Ads API reference](https://advertising.amazon.com/API/d
|
|
|
102
102
|
|
|
103
103
|
## Version information
|
|
104
104
|
|
|
105
|
-
- **Package version:** 0.1.
|
|
106
|
-
- **Connector version:** 1.0.
|
|
107
|
-
- **Generated with Connector SDK commit SHA:**
|
|
105
|
+
- **Package version:** 0.1.23
|
|
106
|
+
- **Connector version:** 1.0.5
|
|
107
|
+
- **Generated with Connector SDK commit SHA:** 580ea1221eff062f41b1065a155124c85861cb18
|
|
108
108
|
- **Changelog:** [View changelog](https://github.com/airbytehq/airbyte-agent-connectors/blob/main/connectors/amazon-ads/CHANGELOG.md)
|
|
@@ -584,7 +584,7 @@ class LocalExecutor:
|
|
|
584
584
|
return ExecutionResult(
|
|
585
585
|
success=True,
|
|
586
586
|
data={
|
|
587
|
-
"status": "
|
|
587
|
+
"status": "skipped",
|
|
588
588
|
"error": "No list operation available for health check",
|
|
589
589
|
},
|
|
590
590
|
)
|
|
@@ -599,7 +599,7 @@ class LocalExecutor:
|
|
|
599
599
|
return ExecutionResult(
|
|
600
600
|
success=True,
|
|
601
601
|
data={
|
|
602
|
-
"status": "
|
|
602
|
+
"status": "skipped",
|
|
603
603
|
"error": "No standard handler available",
|
|
604
604
|
},
|
|
605
605
|
)
|
|
@@ -616,13 +616,14 @@ class LocalExecutor:
|
|
|
616
616
|
)
|
|
617
617
|
except Exception as e:
|
|
618
618
|
return ExecutionResult(
|
|
619
|
-
success=
|
|
619
|
+
success=False,
|
|
620
620
|
data={
|
|
621
621
|
"status": "unhealthy",
|
|
622
622
|
"error": str(e),
|
|
623
623
|
"checked_entity": check_entity,
|
|
624
624
|
"checked_action": "list",
|
|
625
625
|
},
|
|
626
|
+
error=str(e),
|
|
626
627
|
)
|
|
627
628
|
|
|
628
629
|
async def _execute_operation(
|
|
@@ -186,7 +186,16 @@ class HTTPXClient:
|
|
|
186
186
|
# Try to get error message from response
|
|
187
187
|
try:
|
|
188
188
|
error_data = httpx_response.json()
|
|
189
|
-
|
|
189
|
+
errors_list = error_data.get("errors")
|
|
190
|
+
if isinstance(errors_list, list):
|
|
191
|
+
|
|
192
|
+
def _extract_error(e: object) -> str:
|
|
193
|
+
if isinstance(e, dict):
|
|
194
|
+
return str(e.get("userPresentableMessage") or e.get("message") or e.get("error") or e)
|
|
195
|
+
return str(e)
|
|
196
|
+
|
|
197
|
+
errors_list = ", ".join(_extract_error(e) for e in errors_list)
|
|
198
|
+
error_message = errors_list or error_data.get("message") or error_data.get("error") or str(error_data)
|
|
190
199
|
except Exception:
|
|
191
200
|
error_message = httpx_response.text or f"HTTP {status_code} error"
|
|
192
201
|
|
|
@@ -126,6 +126,17 @@ class Info(BaseModel):
|
|
|
126
126
|
x_airbyte_example_questions: ExampleQuestions | None = Field(None, alias="x-airbyte-example-questions")
|
|
127
127
|
x_airbyte_cache: CacheConfig | None = Field(None, alias="x-airbyte-cache")
|
|
128
128
|
x_airbyte_replication_config: ReplicationConfig | None = Field(None, alias="x-airbyte-replication-config")
|
|
129
|
+
x_airbyte_skip_suggested_streams: list[str] = Field(
|
|
130
|
+
default_factory=list,
|
|
131
|
+
alias="x-airbyte-skip-suggested-streams",
|
|
132
|
+
description="List of Airbyte suggested streams to skip when validating cache entity coverage",
|
|
133
|
+
)
|
|
134
|
+
x_airbyte_skip_auth_methods: list[str] = Field(
|
|
135
|
+
default_factory=list,
|
|
136
|
+
alias="x-airbyte-skip-auth-methods",
|
|
137
|
+
description="List of Airbyte auth methods to skip when validating auth compatibility. "
|
|
138
|
+
"Use the SelectiveAuthenticator option key (e.g., 'Private App Credentials', 'oauth2.0')",
|
|
139
|
+
)
|
|
129
140
|
|
|
130
141
|
|
|
131
142
|
class ServerVariable(BaseModel):
|
|
@@ -5,6 +5,7 @@ These tools help ensure that connectors are ready to ship by:
|
|
|
5
5
|
- Checking that all entity/action operations have corresponding test cassettes
|
|
6
6
|
- Validating that response schemas match the actual cassette responses
|
|
7
7
|
- Detecting fields present in responses but not declared in schemas
|
|
8
|
+
- Validating replication compatibility with Airbyte source connectors
|
|
8
9
|
"""
|
|
9
10
|
|
|
10
11
|
from collections import defaultdict
|
|
@@ -21,6 +22,7 @@ from .connector_model_loader import (
|
|
|
21
22
|
)
|
|
22
23
|
from .testing.spec_loader import load_test_spec
|
|
23
24
|
from .types import Action, EndpointDefinition
|
|
25
|
+
from .validation_replication import validate_replication_compatibility
|
|
24
26
|
|
|
25
27
|
|
|
26
28
|
def build_cassette_map(cassettes_dir: Path) -> Dict[Tuple[str, str], List[Path]]:
|
|
@@ -808,7 +810,25 @@ def validate_connector_readiness(connector_dir: str | Path) -> Dict[str, Any]:
|
|
|
808
810
|
}
|
|
809
811
|
)
|
|
810
812
|
|
|
811
|
-
|
|
813
|
+
# Validate replication compatibility with Airbyte
|
|
814
|
+
replication_result = validate_replication_compatibility(
|
|
815
|
+
connector_yaml_path=config_file,
|
|
816
|
+
raw_spec=raw_spec,
|
|
817
|
+
)
|
|
818
|
+
|
|
819
|
+
# Merge replication errors/warnings into totals
|
|
820
|
+
# Note: If connector is not in registry, we don't count warnings since this is expected for test connectors
|
|
821
|
+
replication_errors = replication_result.get("errors", [])
|
|
822
|
+
replication_warnings = replication_result.get("warnings", [])
|
|
823
|
+
total_errors += len(replication_errors)
|
|
824
|
+
|
|
825
|
+
# Only count replication warnings if the connector was found in the registry
|
|
826
|
+
# (i.e., there are actual validation issues, not just "not found in registry")
|
|
827
|
+
if replication_result.get("registry_found", False):
|
|
828
|
+
total_warnings += len(replication_warnings)
|
|
829
|
+
|
|
830
|
+
# Update success criteria to include replication validation
|
|
831
|
+
success = operations_missing_cassettes == 0 and cassettes_invalid == 0 and total_operations > 0 and len(replication_errors) == 0
|
|
812
832
|
|
|
813
833
|
# Check for preferred_for_check on at least one list operation
|
|
814
834
|
has_preferred_check = False
|
|
@@ -834,6 +854,7 @@ def validate_connector_readiness(connector_dir: str | Path) -> Dict[str, Any]:
|
|
|
834
854
|
"connector_name": config.name,
|
|
835
855
|
"connector_path": str(connector_path),
|
|
836
856
|
"validation_results": validation_results,
|
|
857
|
+
"replication_validation": replication_result,
|
|
837
858
|
"readiness_warnings": readiness_warnings,
|
|
838
859
|
"summary": {
|
|
839
860
|
"total_operations": total_operations,
|