Protect the Engine API
The default Engine bind is127.0.0.1:9321. Fresh installer-created configurations contain a global auth token, readable only by the service user. CLI commands read it from that user’s configuration.
Keep the Engine API on loopback unless direct network access is intentional. Use encrypted transport for remote bearer tokens. Health checks, API schema/docs, and the internal CA’s public certificate are public resources; their availability does not prove authenticated access works.
The App’s account login, the Engine’s API authorization, and authentication inside a deployed application are separate systems. A cloud link is capped at submitter authority; it is not a remote host-admin credential.
Issue scoped tokens
As an admin, create a bounded token for an integration:
token list:
[daemon].auth_token in the protected service-user configuration, restarts the Engine, and updates its clients. Preserve the rest of the file and do not remove the token as an access-recovery workaround: that disables authentication.
Do not print nerdit token output into support logs: the command without a subcommand displays the global credential.
Application secrets
Secrets are encrypted at rest with AES-256-GCM and injected when an application starts. Reads return names, not values:KEY=VALUE arguments. For a non-secret syntax demonstration only:
${secrets.API_KEY}. For a shared secret, an admin uses --shared and the application refers to ${secrets.shared.KEY}. Grant access to shared credentials carefully.
Restart or redeploy an application to pick up changed environment values. Changing a stored managed-database password is not a database password-rotation procedure; the engine’s state must agree with its credentials.
Encryption does not protect secrets from the host administrator. Docker access and inspection of a bound container can reveal environment credentials. Backups containing the master key have the same sensitivity as the secrets themselves.
Workload and network isolation
The runtime drops capabilities, appliesno-new-privileges, restricts mounts, and labels containers by Engine instance. These are protective defaults for a trusted host, not a security boundary against an administrator or mutually hostile tenants.
Managed database ports are reachable from containers on the default bridge; database credentials remain the gate. The application proxy, direct loopback port, hosted share, and optional edge authentication protect different paths. An edge-auth rule does not remove a local host user’s ability to reach a loopback port.
HTTP and MCP share the Engine’s roles, quotas, ownership, structured errors, and audit behavior. Enabling HTTP MCP requires both the optional MCP dependency and a configured Engine token. Do not give an agent admin access when a scoped submitter token can perform its work.