Skip to content

Add publish list management API and enhance report sharing models#76

Merged
jfrench9 merged 1 commit intomainfrom
feature/share-report
Apr 2, 2026
Merged

Add publish list management API and enhance report sharing models#76
jfrench9 merged 1 commit intomainfrom
feature/share-report

Conversation

@jfrench9
Copy link
Copy Markdown
Member

@jfrench9 jfrench9 commented Apr 2, 2026

Summary

Introduces a full-featured publish list management system for the ledger API and refactors the existing report sharing functionality with enhanced data models. This feature enables users to create, manage, and share reports via publish lists with granular member control.

Key Accomplishments

New Publish List API Endpoints (8 new modules)

  • CRUD operations: Create, read, update, and delete publish lists
  • Member management: Add and remove members from publish lists
  • Discovery: List all publish lists and list ledger entities
  • All endpoints follow established API client patterns under robosystems_client/api/ledger/

New & Enhanced Data Models (10 new/modified models)

  • PublishListResponse / PublishListDetailResponse / PublishListListResponse: Response models for publish list operations with varying levels of detail
  • PublishListMemberResponse: Model for representing individual members within a publish list
  • CreatePublishListRequest / UpdatePublishListRequest: Request models for publish list lifecycle management
  • AddMembersRequest: Request model for batch-adding members to a publish list
  • UpdateSecurityRequest: New model for security update operations
  • Enhanced existing models (LedgerEntityResponse, ReportResponse, SecurityResponse) with additional fields to support the publish list ecosystem

Refactored Report Sharing

  • Modified ShareReportRequest model to align with the new publish list architecture
  • Updated report_client.py extension to integrate with the refactored sharing flow

Breaking Changes

  • ShareReportRequest model has been modified (fields changed/removed) — consumers relying on the previous structure will need to update their usage
  • LedgerEntityResponse, ReportResponse, and SecurityResponse models have new fields, which may affect serialization/deserialization if strict schema validation is in place

Testing Notes

  • Verify all publish list CRUD operations work end-to-end (create → list → get → update → delete)
  • Test member management flows: adding multiple members, removing individual members, and verifying list membership
  • Validate that the refactored share_report flow in report_client.py functions correctly with the updated ShareReportRequest model
  • Confirm backward compatibility of enhanced response models with existing API consumers
  • Edge cases to consider: empty publish lists, duplicate member additions, deletion of lists with active members

Infrastructure Considerations

  • New API endpoints require corresponding backend service support for publish list management — ensure the ledger service is deployed with matching API routes
  • The significant number of new models and endpoints (~2,350 lines added) may warrant documentation updates for API consumers
  • Consider versioning implications if existing clients depend on the modified request/response models

🤖 Generated with Claude Code

Branch Info:

  • Source: feature/share-report
  • Target: main
  • Type: feature

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

- Updated the `share` method in `ReportClient` to accept a `publish_list_id` instead of a list of target graph IDs, aligning with the new sharing logic.
- Modified the `ShareReportRequest` model to reflect the change from `target_graph_ids` to `publish_list_id`.
- Added new fields `source_graph_id` and `entity_name` to `LedgerEntityResponse`, `ReportResponse`, and `SecurityResponse` models for improved data handling.
- Updated `__init__.py` files to include new models and ensure proper exports.

These changes enhance the report sharing capabilities and improve the overall data model structure for better integration and usability.
@jfrench9 jfrench9 merged commit 9bdf819 into main Apr 2, 2026
1 check passed
@jfrench9 jfrench9 deleted the feature/share-report branch April 2, 2026 02:11
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