Reference

LiveVerification Required

ObjectDB S3 And HTTP Reference

Source-backed lookup details for ObjectDB health, platform capabilities, legacy endpoint helpers, active s3-core-v1 route shapes, limits, errors, and local adapter constraints.

Current availability

Private Beta. Public beta is scheduled for .

Reference Snapshot

S3 profile
s3-core-v1
S3 route shapes
23
HTTP helpers
5

Maturity Boundary

Live Route Evidence

Health, platform capabilities, and the s3-core-v1 gateway are backed by ObjectDB source, handler tests, protocol profile docs, and gateway validation scripts.

Reviewer-Bound Claims

Broader S3 breadth, customer credential policy, durability, availability, performance, security, support, and scale wording still needs explicit product and sensitive-review evidence.

Reference Summary

IDTypeNameMethodPath, flag, key, or symbolMaturityEvidence
odb-http-healthapiHealth checkGET/healthLiveODB-EVID-007, HealthEndpointTests.cs
odb-http-platform-capabilitiesapiPlatform capabilitiesGET/v1/platform/capabilitiesLiveODB-EVID-007, platform_handler.rs
odb-http-endpoint-routesapiLegacy endpoint data routesPOST, GET/v1/endpoint/{activation_id}Verification RequiredODB-EVID-007, endpoint_handler.rs
odb-s3-core-gatewayapiS3 Core gatewayGET, PUT, HEAD, POST, DELETE, OPTIONS/, /{bucket}, /{bucket}/{key}LiveODB-EVID-002, ODB-EVID-007, S3_HTTP_GATEWAY.md
odb-s3-local-limitslimitGateway and local adapter limitsn/aMAX_S3_HTTP_* and local adapter capsLiveODB-EVID-002, ODB-EVID-007, s3.rs

Management HTTP Routes

RouteRequestResponseErrorsEvidence
GET /healthNo request body.200 OK with JSON string "Healthy".Connection failure when the local service is not listening.health_handler.rs and HealthEndpointTests.cs
GET /v1/platform/capabilitiesNo request body.200 OK with runtime, dataDirectory, freeSpace, device, atomicRename, flushBehavior, and directIo fields.Startup probe failures are emitted before the service starts.platform_handler.rs
POST /v1/endpoint/{activation_id}JSON with url, latency, and activation_id. The path activation ID must be one segment.200 OK with JSON string "Data stored".400 invalid activation id; 500 local file create, write, or serialize failure.routes/endpoint.rs and endpoint_handler.rs
GET /v1/endpoint/{activation_id}/recentSingle-segment activation ID in the route path.Most recent stored Data JSON.400 invalid activation id; 404 No data found; 500 local read or parse failure.endpoint_handler.rs
GET /v1/endpoint/{activation_id}/recent_100Single-segment activation ID in the route path.Array of recent stored records, including in-memory recent data when present.400 invalid activation id; 404 No data found; 500 local read or parse failure.endpoint_handler.rs

The service registers /health, /v1/endpoint/..., and /v1/platform/capabilities before the root S3 catch-all, so these routes retain path priority.

S3 Core Route Shape

Path-style routing uses the first path segment as the bucket. Configured virtual-host-style routing uses the left side of a trusted S3 base domain as the bucket. When both host and path appear to name buckets, the host bucket wins.

HTTP shapeRouted operationHandler familyStatus
GET /ListBucketsserviceRequired by s3-core-v1
PUT /{bucket}CreateBucketbucketRequired by s3-core-v1
HEAD /{bucket}HeadBucketbucketRequired by s3-core-v1
GET /{bucket}?locationGetBucketLocationbucketRequired by s3-core-v1
DELETE /{bucket}DeleteBucketbucketRequired by s3-core-v1
PUT, GET, DELETE /{bucket}?corsBucket CORS operationsbucketTemporary local adapter
PUT, GET, DELETE /{bucket}?policyBucket policy operationsbucketTemporary local adapter
OPTIONS /{bucket} or /{bucket}/{key}CorsPreflightbucketTemporary local adapter
GET /{bucket}?list-type=2ListObjectsV2bucketTemporary ordered-index adapter
POST /{bucket}?deleteDeleteObjectsbucketTemporary local delete-marker adapter
POST /{bucket}PostObjectbucketDelegated browser POST local adapter
PUT /{bucket}/{key}PutObjectobjectTemporary 16 MiB local adapter
GET /{bucket}/{key}GetObjectobjectTemporary local read adapter
HEAD /{bucket}/{key}HeadObjectobjectTemporary local read adapter
DELETE /{bucket}/{key}DeleteObjectobjectTemporary local delete-marker adapter
PUT /{bucket}/{key} with x-amz-copy-sourceCopyObjectobjectTemporary immutable-receipt adapter
GET, PUT, DELETE /{bucket}/{key}?taggingObject tagging operationsobjectTemporary local metadata adapter
POST /{bucket}/{key}?uploadsCreateMultipartUploadmultipartTemporary local multipart state
PUT /{bucket}/{key}?partNumber=N&uploadId=IDUploadPart or UploadPartCopymultipartTemporary local multipart state
POST /{bucket}/{key}?uploadId=IDCompleteMultipartUploadmultipartTemporary local multipart state
DELETE /{bucket}/{key}?uploadId=IDAbortMultipartUploadmultipartTemporary local multipart state
GET /{bucket}/{key}?uploadId=IDListPartsmultipartTemporary local multipart state
GET /{bucket}?uploadsListMultipartUploadsmultipartTemporary local multipart state

Request IDs And Headers

Request Identity

S3 gateway

ObjectDB preserves a non-empty x-amz-request-id up to 128 bytes. Otherwise it generates an odb- request ID.

Gateway Headers

Every classified response

Responses include profile, gateway contract, operation, handler, endpoint-addressing contract, endpoint style, and body-disposition headers.

Operation Headers

Success and error responses

Operation-specific responses add bucket IDs, object IDs, version IDs, commit sequence, checksums, ETags, object size, CORS, policy, multipart, delegated-access, copy-source, or delete-marker headers.

Errors

ErrorApplies ToMeaningRecovery
NotImplementedUnsupported S3 operationsThe route is outside the active s3-core-v1 profile.Use an active route or wait for the later compatibility profile.
AccessDeniedBucket, object, CORS, policy, SSE-C, delegated accessLocal owner, permission, retained-object, CORS, credential, or key checks refused the request.Check local permission headers, bucket ownership, SSE-C headers, or policy configuration.
NoSuchBucketBucket, object, list, multipart routesThe bucket does not exist for the current local principal.Create the bucket or check the endpoint style and bucket name.
NoSuchKeyObject reads, copy source, delete-marker readsThe current object key is missing or hidden by a delete marker.Check the key, write the object, or inspect delete behavior.
BucketAlreadyOwnedByYouCreateBucketThe local principal already owns that bucket name.Reuse the bucket or choose a new tutorial-scoped bucket name.
BucketNotEmptyDeleteBucketThe bucket still has visible current objects.Delete visible objects first, then delete the bucket.
BadDigestPutObject, UploadPart, CopyObject, checksumsSupplied checksum headers do not match the payload or source.Recalculate checksums or use the local quickstart header shape.
EntityTooLargeBody reads and local adaptersA body chunk or temporary local adapter body exceeded its current cap.Use a smaller payload or an active multipart workflow.
SlowDownS3 ingressConcurrent S3 gateway ingress is saturated.Retry after the response Retry-After value.
RequestTimeoutStreaming request bodiesThe body stream failed or stalled beyond the slow-client timeout.Retry with a healthy client connection.
InvalidURIEndpoint addressing and request target parsingThe request target, authority, or dotted-bucket TLS shape is invalid.Use path-style addressing for dotted buckets over ordinary wildcard TLS or fix host/path shape.
PreconditionFailedConditional reads, writes, and copiesETag or date preconditions did not match the current committed object.Re-read current metadata and retry with updated conditions.

Single-error S3 responses include response-fidelity headers for error code, category, retryable flag, and redaction flag. Throttling responses also include Retry-After.

Limits

LimitValueScope
Request target8192 bytesS3 route classification
Aggregate headers32768 bytesS3 route classification
Query parameters64 parametersS3 route classification
Body chunk buffer65536 bytesStreaming body reads
Concurrent S3 requests1024 requestsExecutable service ingress
Slow client timeout30 secondsExecutable service request startup and body progress
PutObject local payload16 MiBTemporary local PutObject adapter
DeleteObjects body1 MiBTemporary local batch delete adapter
DeleteObjects keys1000 keysTemporary local batch delete adapter
Object tags10 tags, 128-byte keys, 256-byte values, 2 KiB totalTemporary local tag adapter
User metadata128-byte keys, 2 KiB values, 2 KiB totalTemporary local metadata adapter
Bucket CORS64 KiB body, 100 rulesTemporary local CORS adapter
Bucket policy20 KiB documentTemporary local bucket-policy adapter

Local Adapter Constraints

Scoped S3 Profile

ObjectDB uses named S3 profiles. This page covers s3-core-v1 and explicitly keeps versioning, Object Lock, lifecycle, replication, inventory, notifications, SelectObjectContent, ACLs, and website hosting outside the active surface.

Temporary Local Storage

PutObject, multipart state, browser POST uploads, bucket CORS, bucket policy, tags, and metadata are implemented through local adapters while distributed storage and configuration work continues.

Local Permissions

The executable gateway currently derives local development principals and operation permissions from ObjectDB-specific headers while customer access-key policy composition matures.

SSE Semantics

SSE request headers are validated and mapped into ObjectDB encryption identity, but encryption-at-rest backend composition remains a separate evidence path.

Examples

Health

curl -i http://127.0.0.1:18080/health

Create Bucket

curl -i -X PUT http://127.0.0.1:18080/photos

Put Object

printf 'object-body' > /tmp/objectdb-body.txt
curl -i -X PUT \
  -H "x-amz-content-sha256: UNSIGNED-PAYLOAD" \
  --data-binary @/tmp/objectdb-body.txt \
  http://127.0.0.1:18080/photos/raw/cat.txt

Unsupported Surface

curl -i "http://127.0.0.1:18080/photos?versioning"

Evidence

SurfaceEvidenceStatusLast checked
Healthhealth_handler.rs and HealthEndpointTests.cspending2026-08-13
Platform capabilitiesplatform_handler.rs and platform handler testspending2026-08-13
Endpoint helpersroutes/endpoint.rs and endpoint_handler.rspending2026-08-13
S3 Core gatewayS3_HTTP_GATEWAY.md, objectdb-protocol s3.rs, and s3_gateway_handler.rspending2026-08-13
S3 error fidelityS3_RESPONSE_ERROR_FIDELITY.md and s3-response-fidelity fixturespending2026-08-13
S3 validationValidate-S3HttpGateway.sh, Validate-S3EndpointAddressing.sh, and Validate-S3ResponseErrorFidelity.shpending2026-08-13

Internal review records track this S3 and HTTP reference and the evidence required to change route, error, or limit status.

Safe Next Steps

  • Available: DOCS-022

    Run the ObjectDB quickstart

    Exercise bucket create, object put/get, list, cleanup, and unsupported-surface responses locally.

  • Available

    Review ObjectDB evidence

    Check the evidence records behind ObjectDB S3 Core, route, limit, and review-boundary wording.

  • Available: DOCS-030

    Read configuration reference

    Separate bind address, data directory, S3 base domains, and fixed request-limit boundaries.

  • Available: DOCS-038

    Compare compatibility

    Use the matrix to distinguish supported, partial, unsupported, preview, future, and review-bound S3 behavior.