DRAKULIS.AIDOCUMENTATION / DEVELOPMENT PREVIEWWebsite ↗
LOCAL FIRST. EVIDENCE DRIVEN.

Security model

This release supports one trusted operator and trusted worker infrastructure. It is a development platform, not a public multi-tenant code executor.

Docker resource controls and filesystem restrictions reduce exposure for the implemented read-only tools. Ordinary containers are not a sufficient security boundary for hostile arbitrary code or multiple mutually untrusted tenants. Any future shell/code tool needs an independent evaluated sandbox, strict egress policy, tested cancellation and explicit human approval before public deployment.

Before public deployment: validate complete container startup, TLS and renewal, operator/worker auth, cross-role rejection, proxy body limits, backup restoration, volume permissions, resource use, and a live cancellation/approval flow on the target environment. Add account-based access, authorization, quotas and rate limiting before multi-user exposure. Authentication tests alone do not establish public release readiness.

V4/V5 additions and public boundary

The initial launch stack contains only static website/docs and a reverse proxy. There are no application upstreams or shared execution networks. Requests to execution-like routes return 403. Studio/API subdomains remain reserved and unlaunched.

The private API supports revocable one-hour HTTPS sessions using random HTTP-only __Host- cookies with Secure, Path=/ and SameSite=Strict; only hashes are retained in process memory. Cookie-authenticated mutations require an exact same-origin Origin header. Local HTTP development continues using the original tab-memory Bearer token. Worker tokens cannot create operator sessions. HTTPS session issuance requires a correctly configured trusted TLS proxy; application deployment remains gated until that is verified on the target.

Per-process rate controls bound anonymous requests, login attempts, authenticated operator traffic and worker reports separately. Logs record method, status and timing without credentials, paths, queries, prompts or document bodies. Session revocation/rate limits are single-instance state and must use shared storage before API replication. Static Nginx rate limiting is intentionally aggregate behind the public proxy; it is not advertised as a per-user distributed protection system.

Remote model execution needs explicit task-level cloud_allowed consent as well as online worker configuration. An offline control plane rejects cloud consent. New task payloads use contract v2; older workers cannot claim these tasks. Local-only privacy is the default. Verification failure is distinct from completed execution, and model-authored claims cannot manufacture tool evidence.

The public Caddy image retains only NET_BIND_SERVICE after dropping all other capabilities; the official binary has that file capability and failed to execute when it was excluded from the bounding set. Static Nginx containers run as the image's unprivileged user on port 8080 and retain no capabilities. Local TLS routing validation uses an internal test CA and ordinary certificate verification; it neither installs a host trust root nor requests real-domain certificates.