You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit f8aceb3
Browse filesBrowse the repository at this point in the historyBrowse files
fix(supply-chain): fail on an unresolvable tag instead of silently skipping it
`digest_of` treated every inspect failure as "tag absent", so a transient
registry error would drop a published digest from the matrix while both jobs
still went green — an unsigned image that verification would later reject, with
nothing in the run to show for it. It now retries, reports absent only when the
registry says the manifest is unknown, and fails the step otherwise. The three
sha tags are required outright, and an alias group that is current must resolve
all three of its tags.
SBOMs no longer attach to index subjects. Syft resolves an index to a single
platform, so the SBOM described amd64 while the index also serves arm64. The
per-arch subjects each carry an accurate SBOM; the index keeps its signature and
provenance.
Docs:
- The member-directory restriction does not apply to organization owners and
admins — the roster routes exempt those roles.
- Python's execution does not hinge on NEXT_PUBLIC_SANDBOXES_ENABLED; that flag
gates the controls, the server-side provider and image decide whether it runs.
- The security checklist demanded sslMode: require on a Compose database that
ships without TLS, so it could not be satisfied as written.
- CERT_HAS_EXPIRED is usually an expired certificate, an incomplete chain, or a
drifted clock. Sending operators straight to NODE_EXTRA_CA_CERTS fixes none of
those, and the section also said the same thing twice.
- Four endpoints, not "both".
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_015BwsJTEQRzWJaY4BRCkPZt
Copy file name to clipboardExpand all lines: apps/docs/content/docs/platform/enterprise/access-control.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -161,7 +161,7 @@ The **Chat Deployment** row also carries an **auth-mode allowlist** — *Auth mo
161
161
|---------|---------------------------|
162
162
| Invitations | Prevents inviting anyone to a workspace or to the organization. |
163
163
| Workspace Creation | Prevents creating new workspaces. A new one is not covered by any workspace-scoped group until you add it, though the organization's default group still governs it. |
164
-
| Member Directory | Withholds the member directory. Members cannot see the names or email addresses of other members. |
164
+
| Member Directory | Withholds the member directory. Members cannot see the names or email addresses of other members. Organization owners and admins keep access — the roster routes exempt those roles. |
Copy file name to clipboardExpand all lines: apps/docs/content/docs/platform/enterprise/self-hosted.mdx
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -69,7 +69,7 @@ See [Sandboxes](/platform/self-hosting/sandboxes) for the provider credentials,
69
69
70
70
## Schedule the background jobs
71
71
72
-
Two enterprise features do their work from a cron-driven HTTP endpoint rather than from the app process. All four endpoints authenticate with a bearer token equal to `CRON_SECRET`, and both return `401` when `CRON_SECRET` is unset:
72
+
Two enterprise features do their work from a cron-driven HTTP endpoint rather than from the app process. All four endpoints authenticate with a bearer token equal to `CRON_SECRET`, and all four return `401` when it is unset:
Copy file name to clipboardExpand all lines: apps/docs/content/docs/platform/self-hosting/security.mdx
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -151,7 +151,7 @@ Two browser-side variables project server state into the UI, and neither is deri
151
151
152
152
| Variable | Effect when unset |
153
153
|---|---|
154
-
| `NEXT_PUBLIC_SANDBOXES_ENABLED` | The Function block's Shell language, its Sandbox picker, and **Settings → Sandboxes** stay hidden, even with a working provider. Python stays selectableand fails at execution |
154
+
| `NEXT_PUBLIC_SANDBOXES_ENABLED` | The Function block's Shell language, its Sandbox picker, and **Settings → Sandboxes** stay hidden, even with a working provider. Python stays selectable; whether it runs depends on the server-side provider and Function image, not on this flag |
155
155
| `NEXT_PUBLIC_E2B_ENABLED` | The E2B-backed Pi block modes stay hidden; `sim-setup doctor` reports it as a mismatch against `E2B_ENABLED`. Revealing them is not enough to make them run — Pi executes on its own image, pinned with `E2B_PI_TEMPLATE_ID` or `DAYTONA_PI_SNAPSHOT_ID`, and fails closed without it |
156
156
157
157
Set the public values only **after** the server-side configuration above is complete — they are assertions about readiness, not switches, and the server-side check has its own conditions beyond them. See [Sandboxes](/platform/self-hosting/sandboxes) for the base-image build and promotion procedure. `npx sim-setup doctor` reports a mismatch in either direction.
@@ -276,7 +276,8 @@ The service bundles ~2.2 GB of spaCy models, so first start takes around three m
276
276
- [ ] NetworkPolicy enabled and `ingressFrom` scoped to the ingress controller
- [ ] Object storage buckets private, with CORS limited to your Sim origin
279
-
- [ ] Database reachable only from the deployment — on Compose, the `db` service's host `ports:` mapping removed or bound to `127.0.0.1` — with a generated `POSTGRES_PASSWORD` and TLS enforced (`sslMode: require`)
279
+
- [ ] Database reachable only from the deployment — on Compose, the `db` service's host `ports:` mapping removed or bound to `127.0.0.1` — with a generated `POSTGRES_PASSWORD`
280
+
- [ ] TLS enforced (`sslMode: require`) on an externally managed database, or on the bundled one once you have configured it for TLS — the shipped Compose database does not enable it
280
281
- [ ] Backups configured **and a restore rehearsed**
Copy file name to clipboardExpand all lines: apps/docs/content/docs/platform/self-hosting/troubleshooting.mdx
+2-4Lines changed: 2 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -116,11 +116,9 @@ image: pgvector/pgvector:pg17 # NOT postgres:17
116
116
117
117
## Certificate errors (CERT_HAS_EXPIRED)
118
118
119
-
SSL certificate errors when calling external APIs almost always mean the endpoint presents a certificate signed by a private CA — a TLS-inspecting proxy, or an internal service.
119
+
Rule out the ordinary causes first: the endpoint's certificate really has expired, its chain is incomplete, or the host's clock has drifted far enough to put a valid certificate outside its window. Check the certificate and the host date before changing any trust configuration — `NODE_EXTRA_CA_CERTS` does not fix any of them.
120
120
121
-
The image already ships current CA certificates and runs as a non-root user, so installing packages inside it is not the fix. This almost always means the endpoint presents a certificate signed by a private CA — a corporate TLS-inspecting proxy, or an internal service.
122
-
123
-
Mount your CA bundle and point Node at it:
121
+
If the certificate is valid and current, the endpoint is presenting one signed by a private CA — a corporate TLS-inspecting proxy, or an internal service. The image already ships current CA certificates and runs as a non-root user, so installing packages inside it is not the fix. Mount your CA bundle and point Node at it:
0 commit comments