Skip to content

Add connection management API endpoints and models#65

Merged
jfrench9 merged 1 commit intomainfrom
feature/connection-management
Feb 25, 2026
Merged

Add connection management API endpoints and models#65
jfrench9 merged 1 commit intomainfrom
feature/connection-management

Conversation

@jfrench9
Copy link
Member

Summary

Introduces a complete connection management module to the robosystems_client, providing full CRUD operations and OAuth support for external data provider connections. This feature adds 8 new API endpoints and 20+ supporting model definitions, along with a minor update to the existing DownloadQuota model.

Key Accomplishments

New API Endpoints (api/connections/)

  • Create Connection – Establish new connections to external providers
  • Delete Connection – Remove existing connections
  • Get Connection – Retrieve details for a specific connection
  • Get Connection Options – Fetch available configuration options for providers
  • List Connections – Query and filter all connections with provider type filtering
  • Init OAuth – Initiate OAuth authentication flows with configurable additional params
  • OAuth Callback – Handle OAuth redirect callbacks to complete authentication
  • Sync Connection – Trigger data synchronization on a connection with customizable sync options

New Models

  • Connection models: ConnectionResponse, ConnectionResponseMetadata, ConnectionOptionsResponse, ConnectionProviderInfo (with auth type and provider enums)
  • Request models: CreateConnectionRequest, OAuthInitRequest, OAuthCallbackRequest, SyncConnectionRequest
  • Response models: OAuthInitResponse, SyncConnectionResponseSyncconnection
  • Provider-specific configs: PlaidConnectionConfig (with accounts and institution types), QuickBooksConnectionConfig, SecConnectionConfig
  • Supporting types: ListConnectionsProviderType0, CreateConnectionRequestProvider, OAuthInitRequestAdditionalParamsType0, SyncConnectionRequestSyncOptionsType0

Modified Models

  • DownloadQuota – Updated attribute definitions (28 lines changed, likely field type or naming adjustments)
  • models/__init__.py – Updated to export all new model classes

Breaking Changes

  • The DownloadQuota model has been modified. Consumers relying on its previous attribute structure should verify compatibility after upgrading.

Testing Notes

  • Verify each of the 8 connection API endpoints for correct request serialization and response deserialization
  • Test OAuth flow end-to-end (init → callback) to ensure proper state handling
  • Validate provider-specific configurations (Plaid, QuickBooks, SEC) with realistic payloads
  • Confirm DownloadQuota changes do not regress existing functionality that depends on this model
  • Test list_connections filtering by provider type, including union/optional type handling

Infrastructure Considerations

  • This is a client-side SDK change; no backend deployment is required, but the corresponding API endpoints must be available on the target environment
  • New provider integrations (Plaid, QuickBooks, SEC) may require environment-specific credentials and OAuth redirect URI configuration
  • The OAuth callback endpoint implies a redirect flow — ensure client applications have appropriate callback handling in place

🤖 Generated with Claude Code

Branch Info:

  • Source: feature/connection-management
  • Target: main
  • Type: feature

Co-Authored-By: Claude noreply@anthropic.com

- Added new connection-related models to `__init__.py` for improved API integration.
- Updated `DownloadQuota` class to reflect monthly limits instead of daily, modifying attributes and methods accordingly for clarity and accuracy.

These changes improve the structure and functionality of the models within the robosystems client.
@jfrench9 jfrench9 merged commit 6dca29c into main Feb 25, 2026
1 check passed
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