You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Implement own Service Manager client for separate-bucket multitenancy #810
For separate-bucket multitenancy, the OSS module currently relies on the @cap-js/attachments MTX sidecar plugin to handle tenant onboarding/offboarding (creating/deleting per-tenant object store instances and bindings via the Service Manager API). The Java app only has a read-only SM client for runtime credential resolution (getBinding()).
This works but couples us to the JS plugin for a critical lifecycle operation, and we lose control over:
Bucket content cleanup on unsubscribe (JS sidecar only deletes the SM instance/binding, doesn't empty the bucket first)
Cache warming on subscribe (first request after provisioning hits a cold cache)
Error resilience (orphaned instance cleanup on binding failure, resilient unsubscribe that continues after partial failures)
Goal
Implement a full Service Manager client in the Java OSS module that handles the complete tenant lifecycle independently, without requiring @cap-js/attachments in the MTX sidecar.
Scope
SM Client (write operations)
createInstance(tenantId, planId) — create object store instance with polling for async completion
createBinding(tenantId, instanceId) — create service binding
deleteBinding(bindingId) — delete service binding
deleteInstance(instanceId) — delete instance with async polling
getOfferingId() / getPlanId(offeringId) — discover objectstore offering and plan (standard / s3-standard)
Activity
github-actions commentedon Apr 22, 2026
👋 Hello @Schmarvinius, thank you for submitting this issue. Our team is reviewing your report and will follow up with you as soon as possible.