Skip to content

Commit e86a63e

Browse files
Merge pull request #2615 from airbytehq/publish/google-drive-v0.1.90
chore(google-drive): bump to 0.1.90
2 parents 51f5f65 + a85a56b commit e86a63e

File tree

6 files changed

+176
-89
lines changed

6 files changed

+176
-89
lines changed

connectors/google-drive/CHANGELOG.md

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

3+
## [0.1.90] - 2026-03-23
4+
- Updated connector definition (YAML version 0.2.2)
5+
- Source commit: 6ad04bc3
6+
- SDK version: 0.1.0
7+
38
## [0.1.89] - 2026-03-23
49
- Updated connector definition (YAML version 0.2.2)
510
- Source commit: 5718dee3

connectors/google-drive/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ See the official [Google-Drive API reference](https://developers.google.com/work
129129

130130
## Version information
131131

132-
- **Package version:** 0.1.89
132+
- **Package version:** 0.1.90
133133
- **Connector version:** 0.2.2
134-
- **Generated with Connector SDK commit SHA:** 5718dee300be8dbcbdece58f9474cf54625872e7
134+
- **Generated with Connector SDK commit SHA:** 6ad04bc3fb66fc474336c37d69c79fb843ea1609
135135
- **Changelog:** [View changelog](https://github.com/airbytehq/airbyte-agent-connectors/blob/main/connectors/google-drive/CHANGELOG.md)

connectors/google-drive/airbyte_agent_google_drive/__init__.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,14 @@
99
GoogleDriveAuthConfig,
1010
GoogleDriveReplicationConfig,
1111
User,
12-
FileVideomediametadata,
12+
FileContentrestrictionsItem,
13+
FileCapabilities,
14+
FileShortcutdetails,
15+
FileLinksharemetadata,
1316
FileImagemediametadataLocation,
1417
FileImagemediametadata,
15-
FileLinksharemetadata,
16-
FileShortcutdetails,
18+
FileVideomediametadata,
1719
FileLabelinfo,
18-
FileContentrestrictionsItem,
19-
FileCapabilities,
2020
File,
2121
FilesListResponse,
2222
FileCreateParams,
@@ -27,12 +27,12 @@
2727
DriveCapabilities,
2828
Drive,
2929
DrivesListResponse,
30-
PermissionPermissiondetailsItem,
3130
PermissionTeamdrivepermissiondetailsItem,
31+
PermissionPermissiondetailsItem,
3232
Permission,
3333
PermissionsListResponse,
34-
CommentQuotedfilecontent,
3534
Reply,
35+
CommentQuotedfilecontent,
3636
Comment,
3737
CommentsListResponse,
3838
RepliesListResponse,
@@ -41,9 +41,9 @@
4141
Change,
4242
ChangesListResponse,
4343
StartPageToken,
44-
AboutStoragequota,
4544
AboutDrivethemesItem,
4645
AboutTeamdrivethemesItem,
46+
AboutStoragequota,
4747
About,
4848
FilesListResultMeta,
4949
DrivesListResultMeta,
@@ -94,14 +94,14 @@
9494
"GoogleDriveAuthConfig",
9595
"GoogleDriveReplicationConfig",
9696
"User",
97-
"FileVideomediametadata",
97+
"FileContentrestrictionsItem",
98+
"FileCapabilities",
99+
"FileShortcutdetails",
100+
"FileLinksharemetadata",
98101
"FileImagemediametadataLocation",
99102
"FileImagemediametadata",
100-
"FileLinksharemetadata",
101-
"FileShortcutdetails",
103+
"FileVideomediametadata",
102104
"FileLabelinfo",
103-
"FileContentrestrictionsItem",
104-
"FileCapabilities",
105105
"File",
106106
"FilesListResponse",
107107
"FileCreateParams",
@@ -112,12 +112,12 @@
112112
"DriveCapabilities",
113113
"Drive",
114114
"DrivesListResponse",
115-
"PermissionPermissiondetailsItem",
116115
"PermissionTeamdrivepermissiondetailsItem",
116+
"PermissionPermissiondetailsItem",
117117
"Permission",
118118
"PermissionsListResponse",
119-
"CommentQuotedfilecontent",
120119
"Reply",
120+
"CommentQuotedfilecontent",
121121
"Comment",
122122
"CommentsListResponse",
123123
"RepliesListResponse",
@@ -126,9 +126,9 @@
126126
"Change",
127127
"ChangesListResponse",
128128
"StartPageToken",
129-
"AboutStoragequota",
130129
"AboutDrivethemesItem",
131130
"AboutTeamdrivethemesItem",
131+
"AboutStoragequota",
132132
"About",
133133
"FilesListResultMeta",
134134
"DrivesListResultMeta",

connectors/google-drive/airbyte_agent_google_drive/_vendored/connector_sdk/executor/local_executor.py

Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -602,6 +602,88 @@ async def check(self) -> ExecutionResult:
602602
error=str(e),
603603
)
604604

605+
async def check_entities(self, entities: list[str]) -> ExecutionResult:
606+
"""Perform health checks for specific entities by probing their list or get operations.
607+
608+
For each entity, looks up (entity_name, Action.LIST) in the operation index.
609+
If not found, falls back to (entity_name, Action.GET). Runs all probes
610+
concurrently and returns per-entity results.
611+
612+
Args:
613+
entities: List of entity names to check.
614+
615+
Returns:
616+
ExecutionResult with per-entity health check results.
617+
"""
618+
logging.debug("check_entities: probing entities %s", entities)
619+
620+
standard_handler = next(
621+
(h for h in self._operation_handlers if isinstance(h, _StandardOperationHandler)),
622+
None,
623+
)
624+
625+
if standard_handler is None:
626+
entity_results = [
627+
{"entity": name, "status": "skipped", "error": "No standard handler available", "checked_action": None}
628+
for name in entities
629+
]
630+
return ExecutionResult(
631+
success=not entities,
632+
data={"entity_results": entity_results, "status": "unhealthy" if entities else "healthy"},
633+
)
634+
635+
tasks = [self._probe_entity(name, standard_handler) for name in entities]
636+
entity_results = await asyncio.gather(*tasks)
637+
638+
all_healthy = all(r["status"] == "healthy" for r in entity_results)
639+
failed = [r for r in entity_results if r["status"] != "healthy"]
640+
error = None
641+
if failed:
642+
names = ", ".join(r["entity"] for r in failed)
643+
error = f"Entity check failed for: {names}"
644+
return ExecutionResult(
645+
success=all_healthy,
646+
data={
647+
"entity_results": list(entity_results),
648+
"status": "healthy" if all_healthy else "unhealthy",
649+
},
650+
error=error,
651+
)
652+
653+
async def _probe_entity(self, entity_name: str, standard_handler: _StandardOperationHandler) -> dict[str, Any]:
654+
"""Probe a single entity's health by executing its list or get operation."""
655+
endpoint = self._operation_index.get((entity_name, Action.LIST))
656+
action = Action.LIST
657+
if endpoint is None:
658+
endpoint = self._operation_index.get((entity_name, Action.GET))
659+
action = Action.GET
660+
if endpoint is None:
661+
return {
662+
"entity": entity_name,
663+
"status": "failed",
664+
"error": f"Entity '{entity_name}' has no list or get operation available for checking",
665+
"status_code": None,
666+
"checked_action": None,
667+
}
668+
try:
669+
params = {"limit": 1} if action == Action.LIST else {}
670+
await standard_handler.execute_operation(entity_name, action, params)
671+
return {
672+
"entity": entity_name,
673+
"status": "healthy",
674+
"error": None,
675+
"status_code": None,
676+
"checked_action": action.value,
677+
}
678+
except Exception as e:
679+
return {
680+
"entity": entity_name,
681+
"status": "unhealthy",
682+
"error": str(e),
683+
"status_code": getattr(e, "status_code", None),
684+
"checked_action": action.value,
685+
}
686+
605687
async def _execute_operation(
606688
self,
607689
entity: str,

0 commit comments

Comments
 (0)