Live Startup Inputs
ObjectDB currently reads bind address, data directory, and S3 base-domain values from startup environment variables.
Reference
Source-backed lookup details for ObjectDB startup environment variables, S3 virtual-host base-domain configuration, fixed ingress limits, and startup platform capability evidence.
Current availability
Private Beta. Public beta is scheduled for .
ObjectDB currently reads bind address, data directory, and S3 base-domain values from startup environment variables.
S3 ingress limits are source constants in the executable today, not operator-tunable environment variables.
| ID | Type | Name | Method | Path, flag, key, or symbol | Maturity | Evidence |
|---|---|---|---|---|---|---|
| odb-config-bind-address | configuration | ObjectDB bind address | n/a | OBJECTDB_BIND_ADDRESS | Live | main.rs |
| odb-config-data-dir | configuration | ObjectDB data directory | n/a | OBJECTDB_DATA_DIR | Live | config.rs, endpoint_handler.rs |
| odb-config-s3-base-domains | configuration | S3 virtual-host base domains | n/a | OBJECTDB_S3_BASE_DOMAINS | Live | config.rs, s3.rs, S3_HTTP_GATEWAY.md |
| odb-config-s3-ingress-limits | limit | S3 ingress request limits | n/a | MAX_S3_HTTP_* and slow-client constants | Live | s3.rs, main.rs, s3_gateway_handler.rs |
| odb-config-platform-capabilities | api | Startup platform capability probe | GET | /v1/platform/capabilities | Live | ODB-EVID-007, PlatformCapabilitiesApiTests.cs |
| Key | Default | Accepted value | Read at | Restart required | Evidence |
|---|---|---|---|---|---|
| OBJECTDB_BIND_ADDRESS | 127.0.0.1:80 | Host and port string accepted by HttpServer::bind, such as 127.0.0.1:18080. | Service startup | Yes | ObjectDB/src/main.rs |
| OBJECTDB_DATA_DIR | data/objectdb below the current working directory | Non-empty filesystem path. Empty values use the default. | Service startup | Yes | ObjectDB/src/config.rs |
| OBJECTDB_S3_BASE_DOMAINS | localhost, 127.0.0.1, ::1, objectdb.local, s3.objectdb.local | Comma-separated DNS base domains. Optional schemes and ports are stripped. | Service startup | Yes | ObjectDB/src/config.rs and crates/objectdb-protocol/src/s3.rs |
Run from the ObjectDB service repository with a docs tutorial port and a disposable data directory.
export OBJECTDB_BIND_ADDRESS=127.0.0.1:18080
export OBJECTDB_DATA_DIR="${TMPDIR:-/tmp}/objectdb-docs-030"
export OBJECTDB_S3_BASE_DOMAINS="s3.objectdb.local,localhost"
cargo run --package objectdbConfirm the selected platform view with curl -s http://127.0.0.1:18080/v1/platform/capabilities.
Configured base domains allow virtual-host-style S3 routing. With OBJECTDB_S3_BASE_DOMAINS=s3.objectdb.local, a request with Host: photos.s3.objectdb.local:18080 and path /raw/cat.jpg resolves bucket photos and key raw/cat.jpg.
ObjectDB trims whitespace and removes optional schemes and ports from each configured entry. Reverse proxies must forward the external host that should participate in S3 routing.
These limits are current source constants, not runtime configuration keys.
| Limit | Value | Scope | User-visible response |
|---|---|---|---|
| MAX_S3_HTTP_URI_BYTES | 8192 bytes | S3 request target classification | InvalidURI |
| MAX_S3_HTTP_HEADER_BYTES | 32768 bytes | Aggregate observed headers | InvalidURI |
| MAX_S3_HTTP_QUERY_PARAMETERS | 64 parameters | Query-shape routing | InvalidURI |
| MAX_S3_HTTP_BODY_BUFFER_BYTES | 65536 bytes | Streaming body chunk buffering | EntityTooLarge |
| MAX_S3_HTTP_CONCURRENT_REQUESTS | 1024 requests | Executable service ingress and S3 semaphore | SlowDown |
| S3_HTTP_SLOW_CLIENT_TIMEOUT_SECONDS | 30 seconds | Request startup and body progress | RequestTimeout |
Temporary local adapters add operation-specific caps such as 16 MiB local PutObject bodies, 1 MiB DeleteObjects bodies, 1,000 DeleteObjects keys, 64 KiB tagging and CORS bodies, and 20 KiB bucket-policy documents.
ObjectDB probes platform capabilities before the service starts and stores that startup result for /v1/platform/capabilities. The response includes runtime identity, data-directory status, direct I/O posture, file and lock support, memory mapping, clocks, TCP sockets, service lifecycle, and findings.
Capability findings support local runtime checks only. Broader durability, availability, performance, support, security, scale, or deployment-readiness wording still needs product and sensitive-review signoff.
| Error | Applies to | Meaning | Recovery |
|---|---|---|---|
| Startup bind failure | OBJECTDB_BIND_ADDRESS | The address is invalid, privileged, unavailable, or already in use. | Choose an unprivileged loopback address and retry. |
| Platform probe failure | OBJECTDB_DATA_DIR | The selected data directory cannot satisfy the startup probe. | Use a writable local directory and check stderr capability findings. |
| InvalidURI | Request target, headers, query parameters, endpoint addressing | S3 routing rejected an oversized or malformed request shape. | Reduce the target, headers, query count, or fix base-domain configuration. |
| EntityTooLarge | Streaming body chunks and local adapters | A body chunk or local adapter body exceeded the active cap. | Use smaller payloads or an active multipart workflow. |
| SlowDown | S3 ingress concurrency | The fixed concurrent S3 request limit is saturated. | Retry after the response Retry-After value. |
| RequestTimeout | Request startup or body progress | The client stalled beyond the slow-client timeout. | Retry with a healthy client connection. |
Available: DOCS-022
Run the ObjectDB quickstartStart ObjectDB locally, create a bucket, put and get an object, list results, and clean up.
Available: DOCS-029
Read S3 and HTTP referenceLookup route shapes, errors, local adapter limits, and S3 Core response headers.
Available
Review ObjectDB evidenceCheck source records behind ObjectDB configuration, route, limit, and review-boundary wording.
Available: DOCS-038
Compare compatibilityUse the matrix to separate supported, partial, unsupported, preview, future, and review-bound S3 behavior.