Release 0.5.0
Release v0.5.0 - Service Users, Pagination & RBAC Hardening
This release introduces comprehensive support for Service Users, API Key Authentication, and rigorous RBAC Enforcement, alongside major scalability improvements (Pagination, Indexing).
🚀 Key Features
🤖 Service User Management
Full lifecycle management for machine-to-machine integration.
- Service Users: Create, list, delete, and rotate keys for service accounts.
- X-API-Key Auth: Authenticate using standard API keys via the
X-API-Keyheader. - Granular Permissions: Assign specific permissions (e.g.,
create_warehouse) to Service Users via custom roles. - Cross-Platform Support:
- API: New endpoints for service user management.
- CLI:
pangolin-admin service-userscommands. - UI: Dedicated pane at
/admin/service-users(Manage users, One-time key display). - SDK:
pypangolinv0.5.0 support.
📄 Universal Pagination
Scalability upgrade for listing massive catalogs.
- Implemented
limitandoffsetpagination across:- API:
/api/v1/catalogs,/api/v1/warehouses, etc. - CLI:
--limitand--offsetflags. - UI: Server-side pagination for DataTables.
- SDK: Paginated iterators in Python client.
- API:
🛡️ RBAC Hardening
- Principal Decoupling: Backend now strictly distinguishes between
RootandTenantcontexts. - Permission Enforcement: Verified enforcement of granular permissions for sensitive operations (Warehouse/Catalog/User modification).
- Service User Constraints: Service Users are scoped strictly to their Tenant.
⚡ UI Enhancements
- Login Convenience: New
/login/{uuid}route for auto-filling Tenant IDs. - Performance: Optimized list rendering for large datasets.
- Fixes: Resolved critical crashes in Service User lists and auth persistency.
🐛 Bug Fixes
- Relational Joins: Fixed incorrect internal joins that blocked Service Users from listing permissions.
- CORS Identity: Fixed middleware state to correctly resolve identities across tenant boundaries.
- CLI Handoff: Fixed context switching bugs in multi-tenant CLI sessions.
📦 Docker Images
alexmerced/pangolin-api:0.5.0alexmerced/pangolin-cli:0.5.0alexmerced/pangolin-ui:0.5.0
🐍 Python SDK
pip install pypangolin==0.5.0