SYSTEM ARCHITECTURE · REVISION 1.2

Separated control, storage, and transport boundaries.

NBS coordinates operating intent without placing bulk object traffic in the interactive management path. Identity, API, persistence, origin, and gateway responsibilities are separated so that regional impairment does not silently expand control-plane authority.

Document owner
Infrastructure Platform
Architecture state
Production
Last reviewed
05 Aug 2026
Review trigger
Material topology change

1. Architecture principles

ARC-01

Control is not payload

The browser and Control API carry metadata and requested state, never bulk object payloads.

ARC-02

Private service bindings

Application and origin services bind to loopback addresses and are reached only through the existing gateway path.

ARC-03

Server-side truth

Identity, role, session, CSRF, persistence, and audit outcomes are determined by the server, not client state.

ARC-04

Recoverable release

Deployment is preceded by application and database backup and followed by health, service, port, interface, and firewall verification.

The architecture favors small, inspectable components over an expanded service mesh for the current control-plane scope. Each additional runtime dependency must justify its operational and security cost.

2. Logical components

ComponentResponsibilityTrust boundaryPrimary controls
HTTPS gatewayPublic transport ownership and forwarding of ordinary HTTPS requestsPublic network edgeExisting gateway policy and port ownership
Nginx originTLS origin, static content, security headers, error mapping, API proxyLoopback 127.0.0.1:8443TLS 1.3, CSP, HSTS, bounded proxy routes
Identity gatewayPassword, MFA, recovery, session, CSRF, role resolutionControl API processPBKDF2, rate limits, opaque cookies, constant-time checks
Control APIStatus, resources, settings, audited operations, structured errorsLoopback 127.0.0.1:8090Same-origin checks, schema validation, request IDs
Control databaseSessions, audit events, resource requests, settings, recovery casesLocal application data directoryRestricted filesystem ownership, WAL, bounded schema
Regional data planeStorage, replication, pipeline execution, bulk transferIndependent operating domainService identities, regional policy, worker safeguards

The console presents the current model and accepted requests. It is not the execution engine for regional movement. This prevents a browser session from becoming a bulk-data transport channel.

3. Authenticated request flow

Browser
  │  HTTPS request
  ▼
Public gateway :443
  │  ordinary web traffic
  ▼
Nginx origin 127.0.0.1:8443
  ├── /assets, /docs, /security ... → static files
  └── /api/* → Control API 127.0.0.1:8090
                  │
                  ├── validate origin and JSON body
                  ├── resolve session and role
                  ├── verify CSRF for mutation
                  ├── persist requested state
                  └── append audit event + request ID

Authentication

The password endpoint verifies the assigned digest. A privileged identity receives a short-lived MFA challenge. Only after verification does the server issue the opaque session cookie and CSRF secret.

Read path

Static documentation is served directly by Nginx. Authenticated API reads resolve the session, read the bounded control record set, and return JSON with a request identifier. The audit endpoint returns at most the most recent one hundred events per request.

Mutation path

A mutation must pass origin, session, CSRF, role, schema, and domain validation. The operation is persisted before the response is returned. Accepted actions receive a generated resource or request identifier; denied operations do not alter requested state.

4. Persistence model

The control database uses SQLite in write-ahead logging mode. This is appropriate for the current single-node control API because it provides transactional state, durable audit records, consistent backup, and a limited operational footprint without an additional public database service.

TableKey dataWrite pathExposure
sessionsToken hash, user ID, CSRF secret, timestampsAuthentication and sign-outNever returned as a list
audit_eventsActor, action, resource, outcome, request ID, source digestAuthentication and control operationsAuthenticated bounded read
resourcesType, creator, validated JSON data, state, timestampResource request APIAuthenticated list
user_settingsUser-scoped control preferencesSettings APIOnly current session
recovery_requestsCase ID, asserted username, timestamp, source digestRecovery APINot exposed through public API

Backups use the SQLite backup interface to produce a consistent database copy before release publication. Application files and origin configuration are preserved in the same versioned recovery package.

5. Deployment topology

The application runs as a dedicated system service under a non-login service account. Static assets are owned by root and served read-only. The database directory is restricted to the application identity. Nginx forwards only the API prefix to the application and serves known public paths from the static release directory.

ListenerBindingOwnerPurpose
Public HTTPS transportTCP 443Existing gateway servicePublic entry and forwarding
Origin HTTPS127.0.0.1:8443NginxStatic site and API reverse proxy
Control API127.0.0.1:8090NBS applicationAuthentication and control operations
HTTP redirectTCP 80NginxPermanent redirect to HTTPS
Port ownership invariant

A release must not move the NBS application onto a public port or change ownership of existing gateway transports. Post-release verification checks processes and listeners explicitly.

6. Failure isolation

Control API unavailable

Static documentation and origin health can remain available while authenticated operations return a service error. Regional data movement continues according to previously accepted state; the UI does not claim that a failed submission was accepted.

Database unavailable

Session creation, recovery tracking, resource mutation, and audit reads fail closed. The service does not fall back to browser-only identity or unrecorded change execution.

Regional impairment

A regional storage or transfer condition is represented through health, alerts, incidents, and changes. It does not invalidate the identity boundary or grant direct access to regional payloads.

Origin failure

The gateway cannot complete ordinary HTTPS forwarding when the local origin is unavailable. Recovery uses the pre-release application and origin backup, followed by the same listener and firewall invariants.

Client interruption

Closing or refreshing the browser does not delete an accepted resource request. Persisted resources and user settings are loaded again after session restoration.

7. Dependency registry

The Integrations page is a registry of connector aliases and operating metadata. It is designed to expose enough information for operators to identify a dependency without publishing secret material. Provider documentation links are external technical references.

ClassRegistered purposeBrowser-visible dataExcluded data
Object storageArchive and object lifecycle workflowsConnector alias, endpoint alias, statusTenant, namespace, signing secret
DatabaseControl or snapshot workflow integrationConnector alias, region alias, statusConnection string, credentials, wallet
ObservabilityTelemetry collection and error correlationCollector or project alias, statusIngest token, private endpoint
Event streamingOperational event transportCluster alias and statusBroker credentials and internal addresses

A registry state is not third-party assurance. Assurance claims and limitations are documented in the Trust Center.

8. Capacity and service objectives

Control-plane views distinguish an objective from a measurement. The published service objective for the interactive control plane is 99.95% monthly availability. Regional storage, replication, and worker objectives are displayed in operating views with their own scopes.

Capacity forecasts use current allocation and observed growth to estimate headroom. Forecasts are planning signals, not guaranteed exhaustion dates. Operators should investigate growth-rate changes, protection overhead, maintenance reserve, and regional imbalance before scheduling capacity work.

SignalUseNot sufficient for
Request throughputTraffic trend and anomaly contextPer-tenant billing
Ingress rateNetwork and storage planningLogical retention calculation
Logical and raw capacityProtection overhead and headroomGuaranteed future allocation
Replication objectiveBacklog and durability responseProof of object-level completion

9. Architecture decisions

Accepted

Keep the Control API on a loopback-only listener and publish it exclusively through the hardened HTTPS origin.

Accepted

Use server-side opaque sessions and CSRF verification instead of placing authorization state in browser-readable tokens.

Accepted

Use SQLite WAL for the single-node control record set and the SQLite backup API for consistent release recovery.

Accepted

Separate interactive control metadata from bulk object transfer and regional worker execution.