Web Console¶
The console is an administrative interface for Record Store. It is a client of the management API on 7601 and is entirely optional — Record Store stays fully operable through the CLI and the API alone.
How it is wired¶
flowchart LR
Browser --> Console[Console server :7602]
Console -->|Bearer token, server-side| API[Management API :7601]
The browser talks only to the console's own origin. The console server attaches the management credential and forwards the request, so:
- the credential lives in an HTTP-only cookie the page cannot read
- no CORS configuration is needed for administration
- the browser never reaches the management API, the stored objects, or the metadata catalog
Public share pages are served by the same application but authorize differently: that path attaches no credential at all, because the token in the URL is the authorization.
Signing in¶
Go to the console's address and sign in with a management role token — the value of
RECORD_STORE_MANAGEMENT_SYSTEM_TOKEN, RECORD_STORE_MANAGEMENT_STORAGE_TOKEN, or
RECORD_STORE_MANAGEMENT_AUDITOR_TOKEN.
The role you sign in with decides what the console offers. An auditor token gets a read-only console. See Authorization.
What is there¶
| Screen | What it does |
|---|---|
| Overview | Deployment status, capacity, and recent activity |
| Buckets | Create, inspect, and delete buckets; versioning and quota |
| Objects | Browse by prefix, upload, download, preview, manage versions |
| Service accounts | Create accounts, rotate credentials, enable and disable |
| Policies | Create policies and attach them to accounts |
| Audit | Query the durable security audit trail |
| Events | Storage event history |
| Webhooks | Configure endpoints and inspect delivery attempts |
| Integrity | Verify checksums for an object or a whole bucket |
| Metrics | The same numbers Prometheus scrapes, rendered |
| System | Version and deployment capabilities |
Object browsing¶
Keys are flat, but the browser presents them as folders using prefixes and delimiters.
Navigating into reports/ lists what is directly beneath it plus the next level of
pseudo-folders. See Buckets and Objects.
Uploads¶
The browser sends an object as one streaming PUT. The File handle is the request
body, so bytes travel from disk to the network without passing through the page's
heap — object size is not bounded by browser memory.
Console uploads are not resumable
An interrupted upload fails and must be sent again from the first byte. Resumable browser uploads need presigned multipart part URLs, which the management API does not expose yet. For large or unreliable uploads, use the AWS CLI or an SDK.
Preview¶
The console renders images, video, audio, PDFs, text, and JSON inline, and offers everything else as a download. The declared media type is corroborated against the object's leading bytes before anything is rendered. See Object Preview.
Configuration¶
| Variable | Purpose |
|---|---|
RECORD_STORE_API_URL |
Management API base URL. Default http://127.0.0.1:7601. |
RECORD_STORE_CONSOLE_SECURE_COOKIES |
Force the session cookie's Secure flag. Defaults to on in production. |
PORT |
Console listener. Default 7602. |
RECORD_STORE_API_URL is read on the server at runtime, so one image works in any
deployment and no localhost assumption is compiled into the bundle.
Do not expose the management API to reach the console
The console reaches 7601 over your private network. Publishing 7601 to the internet so a browser can reach it defeats the design — the browser is not supposed to talk to it at all.