Object storage застосунків
Availability
Managed object storage not available yet. Current bucket service is control-plane preview. Creates bucket-shaped record, generates one-time S3-shaped credentials, can publish OF_S3_* environment variables, but endpoint is stub-minio-platform.local:9000. No MinIO bucket created and no object can be stored there.
Do not use record with status stub for uploads, backups, any data that must survive. Successful call proves only control-plane contract ran.
What you can test today
Preview exercises these boundaries:
- unique bucket-name generation;
- app ownership checks in MCP wrapper;
- one-time secret handling;
- metadata-only list responses;
- publication of
OF_S3_ENDPOINT,OF_S3_BUCKET,OF_S3_ACCESS_KEY,OF_S3_SECRET_KEY,OF_S3_REGION; and - association of bucket reference with app.
If environment publication succeeds, values still placeholders. Remove before deploying workload that expects real storage.
MCP tools
| Tool | Current behavior |
|---|---|
add_app_bucket(app_id) | Creates stub record and may publish placeholder OF_S3_* values. |
list_app_buckets(app_id) | Lists metadata. Never returns secret key. |
add_app_bucket(app_id='550e8400-e29b-41d4-a716-446655440000')Check response before using:
{
"bucket_id": "buk-a7f3b2c1d9e4f",
"endpoint_url": "http://stub-minio-platform.local:9000",
"status": "stub",
"env_published": false
}When automatic environment publication unavailable, response can include secret and env_payload once. That does not turn stub endpoint into storage. Handle response as sensitive and do not log it.
REST contract
| Method | Path | Result |
|---|---|---|
POST | /api/app-infra/buckets | Creates preview record and returns one-time credential-shaped data. |
GET | /api/app-infra/buckets/{bucket_id} | Returns metadata without secret key. |
GET | /api/app-infra/buckets?app_id={app_id} | Lists bucket metadata for app. |
Prefer owner-scoped MCP tools for normal use. Platform routes are internal integration surface.
Planned application contract
When real provider enabled, applications construct S3-compatible client explicitly from five OF_S3_* variables. Do not rely on ambient AWS credentials. Same variable names can be used with temporary operator-managed S3 service today, provided you supply real values through App environment variables.
Before managed storage can be called ready
Production-capable release needs evidence for:
- deployed and reachable object-store host;
- per-app access isolation;
- upload, download, redeploy-persistence tests;
- rotation and safe deprovisioning;
- capacity, availability, error monitoring; and
- backup or replication behavior appropriate to stated durability target.
Until those checks pass, use operator-managed S3-compatible service and test recovery path directly.