Skip to content

feat: Add AppDB client with Pydantic model returns#2

Merged
ssbean merged 4 commits intomasterfrom
feat/appdb-client
Mar 3, 2026
Merged

feat: Add AppDB client with Pydantic model returns#2
ssbean merged 4 commits intomasterfrom
feat/appdb-client

Conversation

@ssbean
Copy link

@ssbean ssbean commented Mar 3, 2026

Summary

  • Complete AppDB (document store) client: collections, documents, queries, bulk ops, permissions, export
  • Both sync (AppDBClient) and async (AsyncAppDBClient) implementations
  • First SDK client to return Pydantic models instead of raw dicts
  • Wired into Domo and AsyncDomo as domo.appdb
  • Includes transport params prereq and brainstorm/plan docs

Testing

  • 51 new tests (models, sync client, async client)
  • All tests pass, ruff clean

🤖 Generated with Claude Code

ssbean and others added 4 commits March 3, 2026 20:10
Enable query parameter passing on PUT and DELETE requests, and return
response body from DELETE (previously returned None). This unblocks
AppDB client methods that need params on PUT (set_permission) and
DELETE with response body (bulk_delete).

Changes are backward-compatible — new params arg defaults to None.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
First SDK client to return Pydantic models instead of raw dicts,
establishing the pattern for all future clients.

Includes:
- Collection CRUD (create, get, list, update, delete)
- Document CRUD (create, get, list, update, delete)
- MongoDB-style query with pagination and aggregation (v2 endpoint)
- Bulk operations (create, upsert, delete)
- Partial update with MongoDB operators ($set, $unset, $inc)
- Permission management (set, remove)
- Export trigger
- Full sync + async client pair
- 51 new tests (models, sync client, async client)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@ssbean ssbean merged commit cfc748b into master Mar 3, 2026
2 of 7 checks 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