Skip to content

Comments

feat(connectors): add API client for connector management#190

Merged
Paveltarno merged 1 commit intopavelta-connectors-1from
pavelta-connectors-api-client
Feb 8, 2026
Merged

feat(connectors): add API client for connector management#190
Paveltarno merged 1 commit intopavelta-connectors-1from
pavelta-connectors-api-client

Conversation

@Paveltarno
Copy link
Collaborator

@Paveltarno Paveltarno commented Feb 4, 2026

Note

Description

This PR adds API client methods for managing OAuth connectors in the Base44 CLI. It introduces four new API functions (listConnectors, syncConnector, getOAuthStatus, removeConnector) along with updated Zod response schemas for validation. The implementation follows the project's established patterns for API error handling and schema validation.

Related Issue

None

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)
  • Documentation update
  • Refactoring (no functional changes)
  • Other (please describe):

Changes Made

  • Created src/core/resources/connector/api.ts with four new API client methods:
    • listConnectors(): Fetches all connectors for the current app
    • syncConnector(): Syncs a connector with specified scopes
    • getOAuthStatus(): Polls OAuth authorization status for a connection
    • removeConnector(): Removes a connector integration
  • Added corresponding Zod schemas for API responses: SyncConnectorResponseSchema, OAuthStatusResponseSchema, RemoveConnectorResponseSchema
  • Added new types: OAuthPollingStatus, SyncConnectorResponse, OAuthStatusResponse, RemoveConnectorResponse
  • Removed verbose comments from schema definitions for cleaner code
  • Exported API functions from connector/index.ts
  • Updated connectorResource push method (still throws error pending OAuth flow implementation)

Testing

  • I have tested these changes locally
  • I have added/updated tests as needed
  • All tests pass (npm test)

Checklist

  • My code follows the project's style guidelines
  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation (if applicable)
  • My changes generate no new warnings
  • I have updated AGENTS.md if I made architectural changes

Additional Notes

This PR lays the groundwork for OAuth connector management commands. The actual push implementation for connectors will be added in a follow-up task once the full OAuth flow is ready. All API methods follow the project's standard error handling patterns using ApiError.fromHttpError() and Zod schema validation.


🤖 Generated by Claude | 2026-02-04 11:30 UTC

Add API client methods for OAuth connector operations:
- listConnectors: list all connectors for current app
- syncConnector: sync connector with exact scope matching
- getOAuthStatus: poll OAuth authorization status
- removeConnector: remove a connector integration

Also update response schemas and clean up verbose comments.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@github-actions
Copy link
Contributor

github-actions bot commented Feb 4, 2026

🚀 Package Preview Available!


Install this PR's preview build with npm:

npm i @base44-preview/cli@0.0.28-pr.190.9cbec15

Prefer not to change any import paths? Install using npm alias so your code still imports base44:

npm i "base44@npm:@base44-preview/cli@0.0.28-pr.190.9cbec15"

Or add it to your package.json dependencies:

{
  "dependencies": {
    "base44": "npm:@base44-preview/cli@0.0.28-pr.190.9cbec15"
  }
}

Preview published to npm registry — try new features instantly!

@claude
Copy link

claude bot commented Feb 4, 2026

Code review

No issues found. Checked for bugs and CLAUDE.md compliance.

@kfirstri kfirstri moved this from Backlog to In progress in CLI Development Feb 5, 2026
@Paveltarno Paveltarno merged commit 9145037 into pavelta-connectors-1 Feb 8, 2026
3 checks passed
@github-project-automation github-project-automation bot moved this from In progress to Done in CLI Development Feb 8, 2026
@Paveltarno Paveltarno deleted the pavelta-connectors-api-client branch February 8, 2026 15:33
Paveltarno added a commit that referenced this pull request Feb 8, 2026
Add API client methods for OAuth connector operations:
- listConnectors: list all connectors for current app
- syncConnector: sync connector with exact scope matching
- getOAuthStatus: poll OAuth authorization status
- removeConnector: remove a connector integration

Also update response schemas and clean up verbose comments.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Paveltarno added a commit that referenced this pull request Feb 10, 2026
Add API client methods for OAuth connector operations:
- listConnectors: list all connectors for current app
- syncConnector: sync connector with exact scope matching
- getOAuthStatus: poll OAuth authorization status
- removeConnector: remove a connector integration

Also update response schemas and clean up verbose comments.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Paveltarno added a commit that referenced this pull request Feb 11, 2026
Add API client methods for OAuth connector operations:
- listConnectors: list all connectors for current app
- syncConnector: sync connector with exact scope matching
- getOAuthStatus: poll OAuth authorization status
- removeConnector: remove a connector integration

Also update response schemas and clean up verbose comments.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Paveltarno added a commit that referenced this pull request Feb 12, 2026
Add API client methods for OAuth connector operations:
- listConnectors: list all connectors for current app
- syncConnector: sync connector with exact scope matching
- getOAuthStatus: poll OAuth authorization status
- removeConnector: remove a connector integration

Also update response schemas and clean up verbose comments.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Paveltarno added a commit that referenced this pull request Feb 12, 2026
* feat(connectors): add OAuth connector resource schemas and file parsing

Add connector resource module supporting 12 OAuth providers:
googlecalendar, googledrive, gmail, googlesheets, googledocs,
googleslides, slack, notion, salesforce, hubspot, linkedin, tiktok.

- Zod discriminated union schema with type discriminator per provider
- JSDoc links to official OAuth scope documentation for each provider
- JSONC file reading with validation (filename must match type field)
- API response schemas for upstream connector state
- Unit tests with fixtures for valid, invalid, and mismatched connectors

Part of: #184

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat(connectors): add API client for connector management (#190)

Add API client methods for OAuth connector operations:
- listConnectors: list all connectors for current app
- syncConnector: sync connector with exact scope matching
- getOAuthStatus: poll OAuth authorization status
- removeConnector: remove a connector integration

Also update response schemas and clean up verbose comments.

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

* feat(connectors): implement push logic for syncing connectors (#191)

* feat(connectors): implement push logic for syncing connectors

Add pushConnectors function that:
- Syncs all local connectors via /sync endpoint
- Removes upstream-only connectors not in local config
- Returns typed results (synced, removed, needs_oauth, error)

Includes unit tests covering all scenarios.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* feat(connectors): add OAuth flow handling with browser redirect and polling (#192)

* feat(connectors): add OAuth flow handling with browser redirect and polling

Add runOAuthFlow function that:
- Opens OAuth redirect URL in browser
- Polls getOAuthStatus until ACTIVE or FAILED
- Returns PENDING on timeout (5 minutes)

Uses p-wait-for TimeoutError for robust timeout detection.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

* connectors: base44 connectors push (#194)

* final connector work sofi 1

* scopes

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>

* chore: add .worktrees to .gitignore

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* fix(connectors): make scopes optional for Notion provider (#213)

* feat(connectors): support arbitrary OAuth providers

Change provider field from closed enum to flexible union that accepts both
known providers (googlecalendar, notion, slack, etc.) and any arbitrary
provider string. This enables users to configure custom OAuth providers
without waiting for first-class Base44 support.

Schema changes:
- Add GenericConnectorSchema for arbitrary provider types
- Update ConnectorResourceSchema to union of specific + generic schemas
- Update IntegrationTypeSchema to accept known enum OR any non-empty string
- Only reject empty strings

Test coverage:
- Verify known providers continue to work
- Verify arbitrary providers are accepted
- Verify empty strings are rejected
- All 137 tests passing

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>

* review fixes

* lint

* remove push messages

* notion is optional

* minor changes

* tsc + lint

* more lint

* knip

* fix async point

* Address PR review feedback

- Use .transform() for camelCase on response schemas
- Rename setResponseToResult → getConnectorSyncResult
- Add flow comments in pushConnectors
- Extract assertNoDuplicateConnectors helper
- Improve CLI push command (early exit, ticks, try/catch, description)
- Remove .optional() from guaranteed API response fields
- Clean up formatting and unused types

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* Fix E2E tests: default null for optional connector response fields

The mock handler now defaults error/error_message/other_user_email to
null, matching the real API behavior after removing .optional() from
the Zod schema.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* copy

* Remove schema validation tests from connectors spec

Schemas are self-documenting; matches pattern of other core/ tests
which only test business logic.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

1 participant