Skip to content

Commit 5b6d51e

Browse files
Merge pull request #3250 from airbytehq/publish/google-analytics-data-api-v0.1.24
chore(google-analytics-data-api): bump to 0.1.24
2 parents 6a0cb44 + f1154eb commit 5b6d51e

File tree

6 files changed

+124
-89
lines changed

6 files changed

+124
-89
lines changed

connectors/google-analytics-data-api/CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Google Analytics Data Api changelog
22

3+
## [0.1.24] - 2026-04-09
4+
- Updated connector definition (YAML version 1.0.5)
5+
- Source commit: c5258deb
6+
- SDK version: 0.1.0
7+
38
## [0.1.23] - 2026-04-09
49
- Updated connector definition (YAML version 1.0.5)
510
- Source commit: 6bf360a5

connectors/google-analytics-data-api/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ See the official [Google-Analytics-Data-Api API reference](https://developers.go
122122

123123
## Version information
124124

125-
- **Package version:** 0.1.23
125+
- **Package version:** 0.1.24
126126
- **Connector version:** 1.0.5
127-
- **Generated with Connector SDK commit SHA:** 6bf360a546d577c9f76e8a6b8abf9ffc4dbfcf3a
127+
- **Generated with Connector SDK commit SHA:** c5258debd165ab701252c1436d4acfb475bf92b9
128128
- **Changelog:** [View changelog](https://github.com/airbytehq/airbyte-agent-connectors/blob/main/connectors/google-analytics-data-api/CHANGELOG.md)

connectors/google-analytics-data-api/airbyte_agent_google_analytics_data_api/__init__.py

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -13,41 +13,41 @@
1313
Row,
1414
DimensionHeader,
1515
MetricHeader,
16-
RunReportResponsePropertyquotaTokensperprojectperhour,
17-
RunReportResponsePropertyquotaServererrorsperprojectperhour,
18-
RunReportResponsePropertyquotaConcurrentrequests,
19-
RunReportResponsePropertyquotaTokensperhour,
16+
RunReportResponseMetadata,
2017
RunReportResponsePropertyquotaTokensperday,
18+
RunReportResponsePropertyquotaTokensperhour,
2119
RunReportResponsePropertyquotaPotentiallythresholdedrequestsperhour,
20+
RunReportResponsePropertyquotaServererrorsperprojectperhour,
21+
RunReportResponsePropertyquotaConcurrentrequests,
22+
RunReportResponsePropertyquotaTokensperprojectperhour,
2223
RunReportResponsePropertyquota,
23-
RunReportResponseMetadata,
2424
RunReportResponse,
25-
WebsiteOverviewRequestDimensionsItem,
2625
WebsiteOverviewRequestDaterangesItem,
26+
WebsiteOverviewRequestDimensionsItem,
2727
WebsiteOverviewRequestMetricsItem,
2828
WebsiteOverviewRequest,
2929
DailyActiveUsersRequestMetricsItem,
3030
DailyActiveUsersRequestDaterangesItem,
3131
DailyActiveUsersRequestDimensionsItem,
3232
DailyActiveUsersRequest,
33+
WeeklyActiveUsersRequestDimensionsItem,
3334
WeeklyActiveUsersRequestMetricsItem,
3435
WeeklyActiveUsersRequestDaterangesItem,
35-
WeeklyActiveUsersRequestDimensionsItem,
3636
WeeklyActiveUsersRequest,
37+
FourWeeklyActiveUsersRequestDimensionsItem,
3738
FourWeeklyActiveUsersRequestMetricsItem,
3839
FourWeeklyActiveUsersRequestDaterangesItem,
39-
FourWeeklyActiveUsersRequestDimensionsItem,
4040
FourWeeklyActiveUsersRequest,
41-
TrafficSourcesRequestMetricsItem,
42-
TrafficSourcesRequestDaterangesItem,
4341
TrafficSourcesRequestDimensionsItem,
42+
TrafficSourcesRequestDaterangesItem,
43+
TrafficSourcesRequestMetricsItem,
4444
TrafficSourcesRequest,
45+
PagesRequestDaterangesItem,
4546
PagesRequestMetricsItem,
4647
PagesRequestDimensionsItem,
47-
PagesRequestDaterangesItem,
4848
PagesRequest,
49-
DevicesRequestMetricsItem,
5049
DevicesRequestDimensionsItem,
50+
DevicesRequestMetricsItem,
5151
DevicesRequestDaterangesItem,
5252
DevicesRequest,
5353
LocationsRequestMetricsItem,
@@ -156,41 +156,41 @@
156156
"Row",
157157
"DimensionHeader",
158158
"MetricHeader",
159-
"RunReportResponsePropertyquotaTokensperprojectperhour",
160-
"RunReportResponsePropertyquotaServererrorsperprojectperhour",
161-
"RunReportResponsePropertyquotaConcurrentrequests",
162-
"RunReportResponsePropertyquotaTokensperhour",
159+
"RunReportResponseMetadata",
163160
"RunReportResponsePropertyquotaTokensperday",
161+
"RunReportResponsePropertyquotaTokensperhour",
164162
"RunReportResponsePropertyquotaPotentiallythresholdedrequestsperhour",
163+
"RunReportResponsePropertyquotaServererrorsperprojectperhour",
164+
"RunReportResponsePropertyquotaConcurrentrequests",
165+
"RunReportResponsePropertyquotaTokensperprojectperhour",
165166
"RunReportResponsePropertyquota",
166-
"RunReportResponseMetadata",
167167
"RunReportResponse",
168-
"WebsiteOverviewRequestDimensionsItem",
169168
"WebsiteOverviewRequestDaterangesItem",
169+
"WebsiteOverviewRequestDimensionsItem",
170170
"WebsiteOverviewRequestMetricsItem",
171171
"WebsiteOverviewRequest",
172172
"DailyActiveUsersRequestMetricsItem",
173173
"DailyActiveUsersRequestDaterangesItem",
174174
"DailyActiveUsersRequestDimensionsItem",
175175
"DailyActiveUsersRequest",
176+
"WeeklyActiveUsersRequestDimensionsItem",
176177
"WeeklyActiveUsersRequestMetricsItem",
177178
"WeeklyActiveUsersRequestDaterangesItem",
178-
"WeeklyActiveUsersRequestDimensionsItem",
179179
"WeeklyActiveUsersRequest",
180+
"FourWeeklyActiveUsersRequestDimensionsItem",
180181
"FourWeeklyActiveUsersRequestMetricsItem",
181182
"FourWeeklyActiveUsersRequestDaterangesItem",
182-
"FourWeeklyActiveUsersRequestDimensionsItem",
183183
"FourWeeklyActiveUsersRequest",
184-
"TrafficSourcesRequestMetricsItem",
185-
"TrafficSourcesRequestDaterangesItem",
186184
"TrafficSourcesRequestDimensionsItem",
185+
"TrafficSourcesRequestDaterangesItem",
186+
"TrafficSourcesRequestMetricsItem",
187187
"TrafficSourcesRequest",
188+
"PagesRequestDaterangesItem",
188189
"PagesRequestMetricsItem",
189190
"PagesRequestDimensionsItem",
190-
"PagesRequestDaterangesItem",
191191
"PagesRequest",
192-
"DevicesRequestMetricsItem",
193192
"DevicesRequestDimensionsItem",
193+
"DevicesRequestMetricsItem",
194194
"DevicesRequestDaterangesItem",
195195
"DevicesRequest",
196196
"LocationsRequestMetricsItem",

connectors/google-analytics-data-api/airbyte_agent_google_analytics_data_api/_vendored/connector_sdk/executor/local_executor.py

Lines changed: 36 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,36 @@
6262

6363

6464
class ParamResolutionError(Exception):
65-
"""Raised when a path parameter cannot be resolved for entity probing."""
65+
"""Raised when a path parameter cannot be resolved for entity probing.
66+
67+
Covers structural resolution failures (unresolvable param, self-reference,
68+
parent with no LIST op, parent returning no records, missing parent key,
69+
max recursion depth). ``_probe_entity`` converts these into UNHEALTHY
70+
results so the backend controller classifies them as INCONCLUSIVE. SKIPPED
71+
is reserved exclusively for "this entity has no list/get action at all".
72+
73+
Execution failures from probing a parent entity use ParentProbeError
74+
instead, so the child can inherit the parent's ``status_code`` for
75+
401/403 -> FAILED classification.
76+
"""
77+
78+
79+
class ParentProbeError(Exception):
80+
"""Raised when a parent entity's LIST probe fails during param resolution.
81+
82+
Wraps the original exception's message with parent-entity context for
83+
debuggability, while preserving the parent's ``status_code`` so the child
84+
can be classified the same way the parent would be (401/403 -> FAILED,
85+
everything else -> INCONCLUSIVE at the backend controller layer).
86+
87+
Distinct from ``ParamResolutionError`` so the ``status_code`` survives --
88+
both route through ``_probe_entity``'s UNHEALTHY branch, but only
89+
ParentProbeError carries the parent's HTTP status.
90+
"""
91+
92+
def __init__(self, message: str, status_code: int | None = None) -> None:
93+
super().__init__(message)
94+
self.status_code = status_code
6695

6796

6897
class _OperationContext:
@@ -727,9 +756,7 @@ async def _probe_entity(
727756
# Also resolve query params that have a matching scoping or config
728757
# key, so explicit config values take precedence over defaults.
729758
for qp in endpoint.query_params:
730-
if qp not in params_needing_resolution and (
731-
qp in self._scoping_index or qp in self.config_values
732-
):
759+
if qp not in params_needing_resolution and (qp in self._scoping_index or qp in self.config_values):
733760
params_needing_resolution.append(qp)
734761
if params_needing_resolution:
735762
try:
@@ -744,7 +771,7 @@ async def _probe_entity(
744771
except ParamResolutionError as exc:
745772
return {
746773
"entity": entity_name,
747-
"status": CHECK_STATUS_SKIPPED,
774+
"status": CHECK_STATUS_UNHEALTHY,
748775
"error": str(exc),
749776
"status_code": None,
750777
"checked_action": action.value,
@@ -846,7 +873,10 @@ async def _resolve_path_params(
846873
parent_params,
847874
)
848875
except Exception as exc:
849-
raise ParamResolutionError(f"Parent entity '{parent_entity_name}' probe failed: {exc}") from exc
876+
raise ParentProbeError(
877+
f"Parent entity '{parent_entity_name}' probe failed: {exc}",
878+
status_code=getattr(exc, "status_code", None),
879+
) from exc
850880
records = result.data if isinstance(result.data, list) else []
851881
if not records:
852882
raise ParamResolutionError(f"Parent entity '{parent_entity_name}' returned no records")

0 commit comments

Comments
 (0)