Releases: RoboFinSystems/robosystems-python-client
Release v0.3.8
RoboSystems Python SDK v0.3.8
This release aligns the API client's error handling with the Swagger/OpenAPI specification, ensuring all endpoint modules return accurate, spec-compliant error responses.
Key Improvements
- Standardized API error handling across all endpoints — Refactored error handling in 146 files spanning every API domain (agent, auth, backup, billing, connections, credits, and documents) to match the service's OpenAPI/Swagger spec (#97).
- More predictable error responses — API client consumers can now rely on error types and status codes that directly mirror the documented API contract.
⚠️ Breaking Changes
- Error response types and handling may have changed — If your code catches or inspects specific exception types, status codes, or error payloads from the client, review your error handling logic. The client now follows the OpenAPI spec strictly, which may differ from previous behavior.
Notable Technical Changes
- Net reduction of ~3,000 lines of code (+4,774 / −7,778) — The refactor consolidated and simplified error handling patterns, removing redundant or hand-written error logic in favor of spec-generated handling.
- Broad surface area, narrow scope — Despite touching 146 files across all API modules, the changes are mechanically consistent: each endpoint was updated to use the same spec-aligned error handling approach.
Bug Fixes
- Fixed error handling in API responses that previously diverged from the documented specification, which could lead to unexpected exception types or missing error details.
📊 Release Statistics
- Commits: 3
- Files Changed: 146
- Lines Added: 4774
- Lines Deleted: 7778
- Previous Release: v0.3.7
🔗 Links
- Full Changelog: v0.3.7...v0.3.8
- All Releases: View all releases
🤖 Generated with Claude Code
Release v0.3.7
RoboSystems Python SDK v0.3.7
This release renames the "Upgrade Tier" operation to "Change Tier" across the Graph API client, models, and related operations, reflecting a broader scope for tier modifications and including fixes to graph operations.
Features & Improvements
- Change Tier operation: Introduced the
Change Tieroperation and associated models to the Graph API client, replacing the previousUpgrade Tiernaming convention. This better represents the ability to both upgrade and downgrade tiers. - Updated
create_graphandgraph_clientto support the new Change Tier operation.
⚠️ Breaking Changes
- Renamed
Upgrade Tier→Change Tier: All references toUpgradeTierhave been renamed toChangeTieracross operations, models, and client methods. If you are importing or referencing any of the following, you will need to update your code:op_upgrade_tier→op_change_tierUpgradeTierOp→ChangeTierOpUpgradeTierOpNewTier→ChangeTierOpNewTier
- Model exports in
models/__init__.pyhave been updated accordingly.
Bug Fixes
- Fixed graph operations as part of the rename effort (#96).
Technical Notes
- 9 files changed across operations, models, client, and tests.
- Tests updated in
test_graph_client.pyto cover the renamed Change Tier operation. CreateGraphRequestmodel updated to align with the new naming.
📊 Release Statistics
- Commits: 3
- Files Changed: 9
- Lines Added: 184
- Lines Deleted: 111
- Previous Release: v0.3.6
🔗 Links
- Full Changelog: v0.3.6...v0.3.7
- All Releases: View all releases
🤖 Generated with Claude Code
Release v0.3.6
RoboSystems Python SDK v0.3.6
This release introduces transaction creation support in the Ledger API client, expanding the available financial operations.
✨ New Features
- Create Transaction operation — Added a new
CreateTransactionendpoint to the Ledger API client, enabling programmatic creation of transactions via the API (#95) - New models — Introduced
CreateTransactionRequestandCreateTransactionRequestStatusmodels to support transaction creation workflows
🔧 Technical Changes
- Extended
ledger_client.pywith the new create transaction operation - Registered new models in the public models module (
__init__.py) - Added 612 lines of new client code and model definitions across 3 new files
⚠️ Breaking Changes
None. This is a purely additive release with no modifications to existing interfaces.
🐛 Bug Fixes
No bug fixes in this release.
📊 Release Statistics
- Commits: 3
- Files Changed: 6
- Lines Added: 612
- Lines Deleted: 1
- Previous Release: v0.3.5
🔗 Links
- Full Changelog: v0.3.5...v0.3.6
- All Releases: View all releases
🤖 Generated with Claude Code
Release v0.3.5
RoboSystems Python SDK v0.3.5
This release refactors API methods across the client library to use operation envelope wrappers, improving consistency and readability throughout the codebase.
Improvements
- API method consistency overhaul: Refactored API methods across all modules (agent, auth, backup, billing, connections, credits, documents, files, graphs, operations, and more) to use standardized operation envelope wrappers, providing a more uniform interface for all API interactions.
- Improved code readability: Streamlined API method signatures and return patterns for clearer, more maintainable code across 140+ files.
⚠️ Breaking Changes
- API method signatures may have changed: The widespread refactor of API methods to use operation envelope wrappers could affect existing code that directly calls client API methods. If you are using low-level API methods from
robosystems_client.api.*, review your usage to ensure compatibility with the new envelope wrapper pattern.
Notable Technical Changes
- Scope of change: 142 files modified across virtually every API domain (auth, billing, graphs, documents, files, connections, backups, MCP, extensions, operations, etc.), indicating a systematic, library-wide refactor rather than a targeted fix.
- Net code addition: +215 lines / −90 lines suggests the envelope wrappers add a thin, consistent abstraction layer without significant bloat.
Bug Fixes
- No explicit bug fixes noted in this release.
This is primarily an internal consistency and maintainability release. End users of the client library should verify that their API call patterns align with the updated method signatures.
📊 Release Statistics
- Commits: 3
- Files Changed: 142
- Lines Added: 215
- Lines Deleted: 90
- Previous Release: v0.3.4
🔗 Links
- Full Changelog: v0.3.4...v0.3.5
- All Releases: View all releases
🤖 Generated with Claude Code
Release v0.3.4
RoboSystems Python SDK v0.3.4
A patch release that fixes a bug in the default value handling for idempotency keys in the LedgerClient.
Bug Fixes
- Fixed idempotency key default value handling in
LedgerClient— Resolved an issue where the idempotency key default value was not being properly assigned, ensuring correct and consistent behavior when no explicit key is provided. (#93)
Technical Details
- Updated default value logic in
robosystems_client/clients/ledger_client.py - Added/updated corresponding test coverage in
test_ledger_client.py
Breaking Changes
None — this is a backwards-compatible bugfix release.
📊 Release Statistics
- Commits: 3
- Files Changed: 3
- Lines Added: 4
- Lines Deleted: 3
- Previous Release: v0.3.3
🔗 Links
- Full Changelog: v0.3.3...v0.3.4
- All Releases: View all releases
🤖 Generated with Claude Code
Release v0.3.3
RoboSystems Python SDK v0.3.3
This release refactors materialization operations to use a dedicated MaterializeOp model, improving type safety and consistency across graph operation APIs.
✨ Improvements
- Refactored materialization operations to use
MaterializeOpmodel — Materialization calls now use a structured request model instead of loosely-typed parameters, aligning with the pattern used by other graph operations (#92) - Added
UpgradeTierOpNewTiermodel — Extracted the new-tier definition into its own dedicated model for clearer separation of concerns
⚠️ Breaking Changes
materializeAPI signature changed — Theop_materializeendpoint and correspondingGraphClientmethods now expect aMaterializeOpmodel object. Callers passing raw arguments will need to update to construct aMaterializeOpinstance instead.
🔧 Technical Changes
- New model modules added:
materialize_op.py,upgrade_tier_op_new_tier.py - Updated model exports in
models/__init__.py graph_client.pyupdated to consume the newMaterializeOpmodelDatabaseHealthResponsemodel received minor adjustments- Tests updated to reflect the new materialization API contract
📊 Release Statistics
- Commits: 3
- Files Changed: 9
- Lines Added: 261
- Lines Deleted: 124
- Previous Release: v0.3.2
🔗 Links
- Full Changelog: v0.3.2...v0.3.3
- All Releases: View all releases
🤖 Generated with Claude Code
Release v0.3.2
RoboSystems Python SDK v0.3.2
This release consolidates client architecture, introduces native accounting operations, and adds new API extensions with SSE support.
Key Features & Improvements
- Native accounting operations: Added journal entry CRUD operations (
create,delete,reverse) with status management support (#89) - Entity taxonomy linking: New
op_link_entity_taxonomyoperation for associating entities with taxonomies - Expanded ledger operations: Added create/update/delete operations for associations, elements, structures, schedules, and taxonomies
- SSE support: New client extensions for RoboSystems API with Server-Sent Events (SSE) streaming (#90)
- Enhanced error handling: Improved response parsing and error handling across RoboInvestor and GraphQL API operations (#89)
⚠️ Breaking Changes
ReportClientremoved: Report functionality has been fully consolidated intoLedgerClient. AllReportClientreferences and imports must be migrated (#91)- Package renamed: Client package has been renamed with a facade refactor — update all import paths accordingly (#90)
- Backup/restore operations relocated:
create_backupandrestore_backuphave been removed fromrobosystems_client/api/backup/and migrated into the unified graph operations module (#91)
Notable Technical Changes
- Unified graph operations module: Backup, restore, and report handling consolidated into a single graph operations module, reducing surface area and simplifying the client API (#91)
- Client reference refactor: Updated client references across code and documentation to reflect the new package naming (#90)
- Project configuration cleanup: Simplified
pyproject.tomland updated README to document table ingestion features (#88)
Bug Fixes
- Improved response parsing resilience in RoboInvestor operations to handle edge cases
- Fixed error handling inconsistencies in GraphQL API operations
📊 Release Statistics
- Commits: 15
- Files Changed: 149
- Lines Added: 13388
- Lines Deleted: 4695
- Previous Release: v0.3.1
🔗 Links
- Full Changelog: v0.3.1...v0.3.2
- All Releases: View all releases
🤖 Generated with Claude Code
Release v0.3.1
RoboSystems Python SDK v0.3.1
This release adds support for JWT token authentication in the GraphQL client, expanding authentication flexibility beyond API keys.
✨ Features & Improvements
- JWT token support in GraphQLClient — The client now accepts both API keys and JWT tokens for authentication, allowing more flexible integration scenarios (#87)
- Enhanced token handling logic to seamlessly distinguish between and route both authentication methods
⚠️ Breaking Changes
None — existing API key authentication continues to work as before.
🔧 Technical Notes
- Authentication header construction in
robosystems_client/graphql/client.pyupdated to support dual token types - Minimal, focused changeset (2 files, 19 lines added) keeping the change low-risk
🐛 Bug Fixes
No bug fixes in this release.
📊 Release Statistics
- Commits: 3
- Files Changed: 2
- Lines Added: 19
- Lines Deleted: 3
- Previous Release: v0.3.0
🔗 Links
- Full Changelog: v0.3.0...v0.3.1
- All Releases: View all releases
🤖 Generated with Claude Code
Release v0.3.0
RoboSystems Python SDK v0.3.0
A major architectural release that migrates the API client from direct investor/ledger endpoints to a unified extensions-based GraphQL architecture, significantly restructuring the client's API surface.
Key Features & Improvements
- Extensions-based GraphQL API architecture — The core API client has been fully migrated to a new extensions-oriented structure, routing operations through GraphQL endpoints (
extensions_graph_ql,extensions_robo_investor,extensions_robo_ledger) (#86) - New GraphQL transport layer — Added dedicated GET and POST handlers for GraphQL queries via
/extensions/{graph_id}/graphqlendpoints - New RoboLedger operations — Added support for
auto_map_elements,build_fact_grid,close_period,create_manual_closing_entry,delete_mapping_association,delete_publish_list,delete_report,remove_publish_list_member,reopen_period,share_report, andtruncate_schedule - New RoboInvestor operations — Added
delete_portfolio,delete_position, anddelete_securityoperations - Improved response handling — Enhanced
InvestorClientandLedgerClientwith better response parsing and new functionality
⚠️ Breaking Changes
- Complete API namespace restructure — All endpoints have moved:
robosystems_client.api.investor.*→robosystems_client.api.extensions_robo_investor.*robosystems_client.api.ledger.*→robosystems_client.api.extensions_robo_ledger.*robosystems_client.api.views.*→robosystems_client.api.extensions_robo_ledger.*
- Removed direct REST endpoints — Query/list operations (
get_portfolio,get_position,get_security,list_holdings,list_portfolios,list_positions,list_securities) have been removed in favor of GraphQL queries - Operation naming convention changed — All operation modules now use an
op_prefix (e.g.,create_portfolio→op_create_portfolio)
Notable Technical Changes
- Substantial codebase reduction: ~22,300 lines removed vs ~7,700 lines added, reflecting the consolidation from REST to GraphQL
- 195 files changed across the migration, indicating a comprehensive restructure
- Updated build configuration in
pyproject.tomlto refine sdist inclusions - Adjusted GitHub Actions test workflow to align with the new architecture
📊 Release Statistics
- Commits: 5
- Files Changed: 195
- Lines Added: 7694
- Lines Deleted: 22332
- Previous Release: v0.2.48
🔗 Links
- Full Changelog: v0.2.48...v0.3.0
- All Releases: View all releases
🤖 Generated with Claude Code
Release v0.2.48
RoboSystems Python SDK v0.2.48
This release introduces comprehensive fiscal calendar management and period closing operations to the Ledger API, significantly expanding the client's financial workflow capabilities.
✨ New Features
- Fiscal Calendar Management — Added full support for fiscal calendar operations including retrieving fiscal calendars, initializing ledgers, and truncating schedules (#85)
- Period Closing Workflow — New APIs for closing and reopening fiscal periods, setting close targets, listing period drafts, and creating manual closing entries
- Ledger Initialization — Added
initialize_ledgerendpoint to support bootstrapping new ledger instances with fiscal calendar configuration - Manual Closing Entries — Support for creating manual closing entries with typed entry classification (
CreateManualClosingEntryRequestEntryType)
📦 New API Endpoints
close_fiscal_period— Close a fiscal periodreopen_fiscal_period— Reopen a previously closed fiscal periodget_fiscal_calendar— Retrieve the fiscal calendar for a ledgerset_close_target— Set the target for period closinglist_period_drafts— List draft entries for a given periodcreate_manual_closing_entry— Create a manual closing journal entryinitialize_ledger— Initialize a new ledger instancetruncate_schedule— Truncate a fiscal schedule
📝 Documentation & Fixes
- Updated
create_structure_request_structure_typedocumentation, removing outdated cash flow statement reference - Refactored fiscal period closing logic in API documentation for clarity
🔧 Notable Technical Changes
LedgerClientextended with all new fiscal calendar methods, consolidating the high-level interface- 20+ new model classes added to support request/response schemas for fiscal operations
- Comprehensive unit tests added for all new
LedgerFiscalCalendaroperations
⚠️ Breaking Changes
- The
create_structure_request_structure_typeenum has been updated — users referencing a cash flow statement structure type should review their code for compatibility.
📊 Release Statistics
- Commits: 6
- Files Changed: 35
- Lines Added: 4556
- Lines Deleted: 45
- Previous Release: v0.2.47
🔗 Links
- Full Changelog: v0.2.47...v0.2.48
- All Releases: View all releases
🤖 Generated with Claude Code