Configuration and Data
This reference combines upstream path/configuration contracts with published owner/release deployment history. Service, port, overlay, and custody descriptions are not newly verified owner-runtime facts. In particular, historical /opt/deek/app paths below are not established pxl rc.2-r14 paths; that tree, foreign owner environments, credentials, and live Session data were not inspected for this repair.
Harness home resolution
Upstream fact
The shared home-path utility resolves one Harness data root. Precedence is an explicit configured path, then non-blank
DSH_HOME, then~/.dsh. Blank or whitespace-onlyDSH_HOMEis treated as unset.
Loca decision
deek.servicealways setsDSH_HOME=/var/lib/deek. Do not rely on the transient user’s default home and do not point the service at an operator home.
Verified paths
| Path | Owner and purpose | Sensitivity |
|---|---|---|
$DSH_HOME/.credentials.yaml | Managed provider credentials and the persistent DSH browser-cookie signing credential. The native UI receives redacted descriptors; subscription grants use the separate holder described below. | Secret |
$DSH_HOME/settings.yaml | Provider/model settings, credential references, and Host-backed Web preferences; custom provider compatibility and modality fields can live here. | Sensitive configuration; references can reveal provider identity |
$DSH_HOME/cordis.patch.yml | Home-wide Cordis patch layer applied after profile layers. | Trusted executable configuration |
$DSH_HOME/profiles/<name>/package.json | Profile manifest, plugin dependencies, ordered Bundle list, and patch-reload lifecycle. | Trusted dependency manifest |
$DSH_HOME/profiles/<name>/cordis.yml | Launcher-owned empty profile root, rewritten on every boot. | Trusted executable configuration |
$DSH_HOME/profiles/<name>/cordis.patch.yml | Profile-specific user patch layer. | Trusted executable configuration |
$DSH_HOME/profiles/node_modules | Maintained flat installation fallback, healed on every launch. | Trusted executable code |
$DSH_HOME/profiles/<name>/node_modules | Out-of-tree packages installed by profile plugin management. | Trusted executable code |
$DSH_HOME/sessions | Root configured for JSONL session persistence in the shipped base Bundle. | User prompts, model output, tool data, paths |
$DSH_HOME/storages | Root configured for the shipped JSON key/value storage domains. | Application state and derived metadata |
$DSH_HOME/.env | Optional upstream launch-environment source. | Secret; disallowed for loca service provisioning |
<invoking-directory>/.env | Optional upstream launch-environment source. | Secret; disallowed in the loca workspace |
The shipped base uses an in-memory SQLite session-content index by default; no durable SQLite path should be invented for this deployment. Session JSONL and JSON storage are implementation-owned. Back them up as trees and do not hand-edit internal shards or domain records.
Loca path mapping
With DSH_HOME=/var/lib/deek, the verified persistent roots become:
| Upstream symbolic path | Loca path |
|---|---|
$DSH_HOME/.credentials.yaml | /var/lib/deek/.credentials.yaml |
$DSH_HOME/settings.yaml | /var/lib/deek/settings.yaml |
$DSH_HOME/cordis.patch.yml | /var/lib/deek/cordis.patch.yml |
$DSH_HOME/profiles/web | /var/lib/deek/profiles/web |
$DSH_HOME/sessions | /var/lib/deek/sessions |
$DSH_HOME/storages | /var/lib/deek/storages |
| Dedicated workspace | /var/lib/deek/workspace |
/var/lib/deek/workspace is a loca deployment path, not an upstream DSH_HOME child contract. It lives under the state directory so the transient service identity can write it, but it must remain distinct from credentials, settings, profiles, and session storage.
Per-user deployment mapping
Authelia now selects one private instance per provisioned account. loca keeps /var/lib/deek; new accounts use DSH_HOME=/var/lib/deek-u-USER, backed by separate idmapped private StateDirectories. Separate profiles in one home would not isolate data; separate homes and kernel UIDs do. No operator state, signing cookie, provider grants or workspace is copied into a new home. An unprovisioned identity receives403.
Each new home has its own .credentials.yaml, settings, profile and session/storage roots. The user explicitly chose shared subscription access for pxl/otto, informed of provider terms and shared-quota risk. Each receives a different local systemd credential; a fixed root-owned loopback proxy translates it to the existing Deek holder. No provider OAuth database, access token or refresh token is copied or mounted into either home. Their browser signers and data remain independent.
New user parents and their children share a4GiB memory slice, private temporary directories and process visibility. No redundant per-user OAuth process/vault is started in shared mode. Host loopback remains shared, so this is not a separate VM/network namespace. Root-controlled dev blocks and owner-only publishing prevent taking another user’s service name/port or exposing an unrelated daemon.
The audited deploy_service tool is the narrow way for an agent’s workspace-write policy to submit its own fixed-spool JSON request. It does not widen that policy to arbitrary HOME writes. Human sidebar terminals have a different application policy but remain the same unprivileged service UID/no_new_privs. See Private Accounts and Service Publishing.
Configuration layers
Upstream composes a profile over an empty root in this order:
- each Bundle patch named by the profile manifest, in manifest order;
- the profile’s
cordis.patch.yml; $DSH_HOME/cordis.patch.yml;- each CLI
--patchoverlay, in argument order.
Later layers win for the rows they target. The web profile is auto-initialized from its shipped template on first use. dsh web is a hardcoded alias for --profile web.
A profile with patchReload: live watches the profile and home patch files and reapplies valid edits transactionally. Native Plugin Manager operations coordinate allowed Bundle changes with live HMR. New private instances additionally refuse unreviewed external packages and executable plugin imports outside their pinned immutable release.
Supervised deployment overlay
The historical owner deployment record describes the compiled CLI loading root-owned /opt/deek/app/deploy/edge.cordis.yml and /opt/deek/app/deploy/agents.cordis.yml, with /etc/deek/deek-edge.cordis.yml and the D-127 drop-in retained as rollback anchors in that release. This records the owner/release arrangement, not verified active overlay paths for pxl rc.2-r14 or a new launch instruction.
The supported webServer.tapIndex hook adds crossorigin="use-credentials" to the manifest link so the browser retains Authelia admission. The manifest and icon paths are not exempted at nginx. A narrow version/hash-pinned client patch makes the native settings mirror read the authenticated public settings.describe API, as the vendor’s loopback mode does. It does not falsify isLoopback or change server-side authorization.
systemd supplies the independent proxy proof with LoadCredential; only a query-free trusted GET / plus exactly one bounded Remote-User can bootstrap a native authority-bound cookie. Identity alone never authenticates the API or WebSocket. Proof values never belong in source, URLs, logs, arguments, or wiki pages.
Subscription credential custody
The historical holder record names subscription profiles deek-codex, deek-claude, and deek-grok using local gateway references rather than paid API keys. It describes provider grants/native refresh retained in /var/lib/deek-oauth-d495/.omp/agent/agent.db, mode0600 for DB/WAL/SHM, and separate private-parent bearers delivered with LoadCredential. The root0600 proxy include carries the gateway transport bearer, not an exported provider token. No credential store or proxy secret was read for this documentation repair.
That owner record names loca’s loopback gateway at127.0.0.1:9516 and pxl/otto proxies at127.0.0.1:9561/9562, with distinct revocable bearers and constrained paths. It also records earlier, individually authorized provider and native Haiku4.5 proofs. Those historical allowances are spent; they neither authorize a new turn nor establish token refresh or the current saved model. These owner-specific paths and ports were not reverified.
Subscription Provider Sign-in owns the release-qualified visible roster and the DeepSeek/Codex/Claude-only approved onboarding policy with independent provider permissions. Paid API keys, .env secret provisioning, wallet imports, and Google routes remain outside this guide’s authorization. A Google or other provider card is not permission to use it. Native DeepSeek-account sign-in is an optional prepaid-credit route, not the subscription route. The private authorization reference owns historical service custody and revocation.
State, session, and workspace behavior
- The invoking directory is upstream’s default filesystem location.
- A fresh Web UI has no selected workspace until one is added and selected.
- The loca unit pins the invoking directory and allowed working tree to
/var/lib/deek/workspace. - New base-backed sessions default to
workspace-write: mutations are limited to the session workspace and platform temporary roots, but reads and network access are not confined. - Session logs can contain prompts, outputs, tool arguments, tool results, and workspace paths.
- Telemetry is hard-disabled locally, but local session and application state still persists under
DSH_HOME.
Backup and restore scope
Before every update:
- stop
deek.service; - back up
/var/lib/deekthrough a root-controlled, encrypted or equivalently access-restricted mechanism; - do not display, diff, or copy credential contents into a transcript;
- label the backup with the matching application revision;
- restore state only with a compatible immutable runtime revision.
The adopted canonical project checkout and retained release artifacts are reconstruction inputs, not proof that the currently deployed binary can be independently reproduced. Historical references to /opt/deek/app do not identify a canonical source repository or establish another owner’s active release. Source adoption and restored upstream files alone do not prove complete dependency/build closure or source-to-binary identity. Private DSH_HOME state remains separate, sensitive, and outside source reconstruction.