Open
Conversation
New management modules:
- audit_logs.py: Audit log querying with pagination
- invitations.py: Organization invitation management
- private_connections.py: Private connection (PrivateLink) management
- projects.py: Project listing
- roles.py: Role-based access control management
- storage.py: Storage and disaster recovery operations
- teams.py: Team management with member/role operations
- users.py: User management with identity roles
Key improvements:
- All enum string parameters are normalized to match OpenAPI spec:
- UPPERCASE: provider, deploymentType, connectionType, status, edition
- lowercase: resourceType
- PascalCase: audit log type/source, invitation state
- Specific normalizer functions in utils.py for self-documenting code
- Normalization in both constructors and API calls for defensive programming
- Mixin classes use cast('WorkspaceManager', self) instead of type ignores
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Document all management API classes and methods in api.rst: - Update WorkspaceManager, WorkspaceGroup, Workspace, Organization with mixin methods - Add ClusterManager and Cluster documentation - Add User, Team, Role, Invitation management sections - Add Audit Logging, Private Connections, Billing sections - Add Starter Workspaces, Storage/DR, Export Service sections - Add Inference API and Projects sections - Add RegionManager documentation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This pull request adds comprehensive Management API wrappers to sync the Python SDK with the current SingleStoreDB Management API capabilities. The PR introduces several new modules for managing users, teams, roles, invitations, audit logs, private connections, projects, and storage/disaster recovery operations.
Key Changes
- Adds eight new management modules (audit_logs, invitations, users, teams, roles, storage, projects, private_connections) with consistent API patterns
- Extends existing classes (Workspace, WorkspaceGroup, Secret, Organization) with new fields and methods
- Implements mixin pattern for WorkspaceManager to organize related functionality
- Adds normalization utilities for API enum values to ensure consistent formatting
Reviewed changes
Copilot reviewed 14 out of 15 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| singlestoredb/management/utils.py | Adds normalization functions for API enums and require_fields validation helper |
| singlestoredb/management/users.py | New module for user management with User class and UsersMixin |
| singlestoredb/management/teams.py | New module for team management with Team class and TeamsMixin |
| singlestoredb/management/storage.py | New module for storage and disaster recovery operations |
| singlestoredb/management/roles.py | New module for role-based access control management |
| singlestoredb/management/private_connections.py | New module for private network connectivity management |
| singlestoredb/management/organization.py | Updates Secret class with CRUD operations and adds SecretsMixin |
| singlestoredb/management/invitations.py | New module for organization invitation management |
| singlestoredb/management/audit_logs.py | New module for audit log retrieval and filtering |
| singlestoredb/management/projects.py | New module for project management |
| singlestoredb/management/workspace.py | Adds new fields (kai_enabled, auto_scale, scale_factor), methods for private connections and Kai support, StarterWorkspaceUser class, and integrates all mixins into WorkspaceManager |
| singlestoredb/management/region.py | Adds cloud provider normalization |
| docs/src/api.rst | Documents all new classes and methods (with some inaccuracies) |
| singlestoredb/management/init.py | Exports new public classes |
| .gitignore | Adds uv.lock exclusion |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Remove duplicate and non-existent method references from documentation: - Remove WorkspaceGroup.create_private_connection and get_private_connection (duplicates) - Remove Workspace.create_private_connection and get_private_connection (duplicates) - Remove Organization methods that don't exist in the codebase Addresses PR #116 review comments. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The set of Management API wrappers currently available in the Python SDK is a subset of all that are available. This PR aims to sync up with the current set of APIs.