Skip to content

Commit 3d3a9c9

Browse files
committed
docs: correct the Helm readOnlyRootFilesystem note and the deployed-run variables TSDoc
1 parent eb276fb commit 3d3a9c9

2 files changed

Lines changed: 4 additions & 3 deletions

File tree

‎apps/sim/lib/workflows/persistence/utils.ts‎

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -106,9 +106,10 @@ export interface DeployedWorkflowData extends NormalizedWorkflowData {
106106
}
107107

108108
/**
109-
* The variables a queued deployed run (async API, schedule, webhook) executes with: the
110-
* deployed version's own, or the workflow's saved variables for a version deployed before
109+
* The variables an unpinned queued deployed run (async API, schedule, webhook) executes with:
110+
* the deployed version's own, or the workflow's saved variables for a version deployed before
111111
* deployments snapshotted them, which is what those runs have always used for such a version.
112+
* A run pinned to a version reads that version's variables directly instead.
112113
*/
113114
export function resolveDeployedRunVariables(
114115
deployedState: DeployedWorkflowData,

‎helm/sim/README.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,7 @@ Before installing in production, confirm each of the following:
340340
matchLabels:
341341
kubernetes.io/metadata.name: ingress-nginx
342342
```
343-
* **Namespace hardening** — label the install namespace with Pod Security Standards `restricted` enforcement (`pod-security.kubernetes.io/enforce=restricted`). All workloads set `runAsNonRoot`, drop all Linux capabilities, disable privilege escalation, and set `seccompProfile: RuntimeDefault` — the four controls the Restricted profile requires. `readOnlyRootFilesystem` is intentionally **not** defaulted anywhere (Postgres/Ollama genuinely need a writable root; the stateless services — `realtime`, `pii`, `copilot` — could tolerate it but aren't pre-wired with a `/tmp` `emptyDir`). If your policy requires it, set `<component>.securityContext.readOnlyRootFilesystem: true` and mount writable `emptyDir` volumes yourself via `extraVolumes`/`extraVolumeMounts`: `/tmp` for every component, plus `/app/apps/sim/.next/cache` and `/app/apps/sim/.next/server/route-cache` for `app`.
343+
* **Namespace hardening** — label the install namespace with Pod Security Standards `restricted` enforcement (`pod-security.kubernetes.io/enforce=restricted`). All workloads set `runAsNonRoot`, drop all Linux capabilities, disable privilege escalation, and set `seccompProfile: RuntimeDefault` — the four controls the Restricted profile requires. `readOnlyRootFilesystem` is defaulted on only for the bundled Redis (Postgres/Ollama genuinely need a writable root; the stateless services — `realtime`, `pii`, `copilot` — could tolerate it but aren't pre-wired with a `/tmp` `emptyDir`). If your policy requires it, set `<component>.securityContext.readOnlyRootFilesystem: true` and mount writable `emptyDir` volumes yourself via `extraVolumes`/`extraVolumeMounts`: `/tmp` for every component, plus `/app/apps/sim/.next/cache` and `/app/apps/sim/.next/server/route-cache` for `app`.
344344
* **Env validation** — keys under `app.env`, `realtime.env`, and `copilot.server.env` are passed through to the application and validated at startup. The JSON Schema intentionally does not enforce `additionalProperties: false` (would break custom user envs), so typos like `OPENA_API_KEY` (instead of `OPENAI_API_KEY`) surface as missing-key errors at runtime, not at `helm install` time. Review your env block carefully.
345345
* **Set public URLs** — `app.env.NEXT_PUBLIC_APP_URL` and `app.env.BETTER_AUTH_URL` must match your public origin (e.g. `https://sim.example.com`). Leaving them as `localhost` breaks sign-in.
346346

0 commit comments

Comments
 (0)