Skip to content

feat(connectors): surface Google Drive connector in create API + UI with OAuth connect (#9003) - #10265

Merged
mrveiss merged 4 commits into
Dev_new_guifrom
issue-9003
Jun 17, 2026
Merged

mrveiss merged 4 commits into
Dev_new_guifrom
issue-9003

Conversation

@mrveiss

@mrveiss mrveiss commented Jun 17, 2026

Copy link
Copy Markdown
Owner

Thinking Path

The GoogleDriveConnector backend (gdrive.py, registered, 19 tests) and the OAuth gate (#10087: oauth_flow.py google provider, get_access_token auto-refresh, ConnectorOAuthButton.vue) already existed — but Google Drive was unreachable: not in the create-API allowlist, not in the frontend ConnectorType, no modal form, and the OAuth button had no connector to attach to. This wires it end-to-end.

What Changed

Backend

  • gdrive added to _SUPPORTED_TYPES (create API).
  • CreateConnectorRequest.secret_id (new) — the OAuth flow stores the token bundle via store_oauth and hands back a secret_id; create attaches it by reference, skips auth-schema validation + re-storing, and marks the connector OAuth-managed.
  • _cfg_with_credentials / new _oauth_full_config — OAuth-managed connectors resolve a fresh access token via get_access_token() (auto-refresh + rotation, ADR-007 §10) injected into the bearer field, instead of load(). Direct-token path unchanged.

Frontend

  • 'gdrive' in the ConnectorType union; Google Drive type card + config form in ConnectorConfigModal.vue (source_type, drive_id, folder_id, sync_subfolders, max_file_size_mb) with the reusable ConnectorOAuthButton (provider "google") capturing the secret_id; buildPayload sends it on create. i18n strings added.

Verification

  • Backend: pytest api/knowledge_connectors_create_test.py knowledge/connectors/gdrive_test.py knowledge/connectors/tests/test_credential_store.py → 43 passed. New create-test proves gdrive is accepted (no 422), secret_id attaches without re-storing, and the token resolves via get_access_token.
  • Frontend: ConnectorConfigModal.gdrive.spec.ts (3) + ConnectorOAuthButton.spec.ts (5) pass; vue-tsc --noEmit 0 errors.
  • Wiring proof: ConnectorRegistry.get_registered_class("gdrive") non-None; modal renders the gdrive card → Connect → createConnector({connector_type:'gdrive', secret_id}).

Model Used

Claude Opus 4.8 (1M context)

@github-actions

github-actions Bot commented Jun 17, 2026 •

Copy link
Copy Markdown
Contributor

✅ SSOT Configuration Compliance: Passing

🎉 No hardcoded values detected that have SSOT config equivalents!

github-actions Bot and others added 3 commits June 17, 2026 12:06
Applied Black, isort, and autoflake to match code-quality checks.
Triggered by workflow auto-fix-formatting.yml.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
@mrveiss
mrveiss merged commit bcf6c9f into Dev_new_gui Jun 17, 2026
29 of 30 checks passed
@mrveiss
mrveiss deleted the issue-9003 branch June 17, 2026 15:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant