Ontology · domain 7

Tenancy & Security — the substrate

Rebrand invariant: the user-facing product term is Kaidera / Kaidera OS. Legacy engen identifiers (schema, roles, key ids, manifest keys) are machine …

3 objects · 0 links · 0 actions
Objects · every one cites its backing source
Organization
organizations (03-shared)
license_tier ∈ {base, developer, enterprise} (compat field)
Project (platform)
projects
org → projects → agents
RLSPolicy
Postgres RLS, FORCE everywhere
transaction-local GUCs app.current_org_id + app.rls_mode ∈ {system, platform, tenant} via rls_context.py; per-domain schemas/roles (public, manifold+manifold_app_dml, license schema + its DML role — legacy engen_os namespace)
Notes, laws and mechanics

4-layer security architecture (docs/design/09-security-architecture.md)

LayerWhatOwnershipDeployment
L1SHA-256-hashed named tokens (admin_tokens table; secrets.compare_digest; legacy cortex-local-admin rejected)Consoleevery install
L2Tailscale + Let's Encrypt TLS (tailscale serve, loopback-only binding)Deployment/operatorremote VM only
L3Passwordless console login — email code/link + optional WebAuthn passkeys (auth_users/sessions/email_challenges/passkeys/audit_events)Consoleself-contained VM; local Mac = OS account
L4PKI / mTLS service-to-service identity (step-ca, 24h certs)Platformmulti-tenant platform only

Design principles: defense in depth · independent ownership · progressive deployment · no plaintext secrets · minimal external dependency.

Appliance security posture (R5)

ConcernMechanismBacking source
Who runs the consolea dedicated non-root service user; systemd hardening on Linuxinstall.sh unit generation
Who runs agent codeharness child processes of the console user, sandboxed with bwrap where the distro permits unprivileged user namespaces (Fedora/RHEL: yes); interactive Leads are never sandboxed by designationharness_runner.py _agent_full_access, _run_bwrap_probe
Where services listenloopback-only published ports; nothing on the LAN; remote access through L2 (Tailscale + TLS)appliance/appliance.yml 127.0.0.1: publishes
Where secrets livethe control volume contract (0600) and the console's runtime env; never the browser, never codebin/kos contract, docs/CURRENT_ARCHITECTURE_AND_RELEASE.md
Data at restnamed volumes; backups carry the databases (encryption of backups is open work SEC-05)kos backup
Provider credentialsOpenKai owns its store; KOS only projects and testsapp/openkai_provider_config.py

Cortex-level governance (KOS)

← 6. Manifold — the meter-once inference gateway8. Distribution & Ecosystem →