chore(deps): bump python from 3.12-slim-bookworm to 3.14-slim-bookworm in /image - #16
Closed
dependabot[bot] wants to merge 5 commits into
Closed
chore(deps): bump python from 3.12-slim-bookworm to 3.14-slim-bookworm in /image#16dependabot[bot] wants to merge 5 commits into
dependabot[bot] wants to merge 5 commits into
Conversation
Sandboxes for running untrusted code, as a Go library over Docker and gVisor. No control plane, no database, no scheduler — you import it, you get a sandbox. Create a container on the runsc runtime with no external network interface, exec commands in it with a per-call timeout, read and write files, start detached background processes, and hand out signed, expiring links to a port inside it. A reaper cleans up sandboxes that went idle or got too old. MIT.
openblox pulls an absent image on create, but never shipped one, so the default path did not work until you had authored a Dockerfile yourself. image/ is that default: python3, bash, nc and a non-root user on Debian slim. The three things openblox actually requires of an image — a shell, a non-root USER, and nc-or-python3 for the preview relay — are now stated in one place and asserted at build time, rather than being folklore that surfaced as a broken preview. Debian rather than Alpine because musl has no manylinux wheels, so on Alpine every numpy install compiles from source inside the sandbox. CI publishes it to ghcr: a tag pushes that version plus :latest, main pushes :edge, both multi-arch. A pull request builds and asserts the contract without pushing, so a broken Dockerfile is a red check rather than a missing image discovered on main. The digest lands in the job summary, because a tag can be repointed by whoever controls the registry and the image is the sandbox's entire userland. Verified against a real gVisor host: create, python3, bash, non-root, /workspace round-trip, a detached process, and a preview fetched over the relay — which now takes the nc fast path rather than the python3 fallback.
* docs: a documentation site at openblox.sh Everything lived in README.md and ARCHITECTURE.md, which were carrying the pitch, the quick start, the security model and the limitations at once for audiences that want different things. Five pages, built with mkdocs-material and deployed to GitHub Pages: home, quick start, security model, the image contract, contributing. The security model gets its own page rather than a README section, because it is the page that decides whether someone adopts a sandboxing library. It states the threat model, what is isolated and how, and — the part usually left out — what is NOT claimed: gVisor is not a hypervisor, side channels are not addressed, revocation is best-effort. It also names the caller as the weakest link in a default deployment and links the two issues tracking that. The image contract was folklore that surfaced as a broken preview. It is now a page: a shell, a non-root user, and nc-or-python3. CI builds on pull requests without deploying, so a broken docs build is a red check rather than a broken site. `mkdocs build --strict` turns a dead internal link into a failure instead of shipping it. Emits llms.txt: a large share of readers are agents, and this project's subject matter is running the code they write. Docs are markdown in the repository, so a behaviour change and its documentation move in the same pull request. * ci: run CI on every pull request, without path filters main now requires Lint, Test, Integration Tests and the commit-message check to pass before merge. A skipped check never reports a conclusion, so with paths-ignore in place a docs-only pull request would sit forever with four required checks pending and no action available to its author. Dropping the filter costs a couple of CI minutes on documentation changes. A category of pull request that silently cannot land costs more. Side effect worth knowing: Release fires on green CI, so it now also runs for docs-only commits. It is a no-op there — `docs:` does not bump a version under conventional commits — but it will appear in the run list where it previously did not.
…#15) A project whose pitch is isolating untrusted code had no vulnerability scanning of its own, and nothing telling us when a dependency moved. govulncheck reported 18 reachable vulnerabilities. Sixteen were the Go standard library, fixed by moving off 1.25.4 — go.mod now asks for 1.25.12. The remaining two are in the Docker client with no fixed version published, and v28.5.2 is already the latest release, so there is nothing to upgrade to. That is exactly the case where govulncheck is useless as a gate: it exits non-zero on any finding, so the check would sit permanently red and people would learn to ignore it. The script narrows the gate to what is actionable — a NEW reachable vulnerability — and keeps the two we cannot fix in .github/vuln-allowlist.txt with the reason and what would remove them. It also reports an allowlist entry that is no longer reachable, so the file cannot quietly accumulate exceptions nobody revisits. Verified in both directions: passes with the allowlist intact, and fails with a real finding when an entry is removed. Dependabot covers three surfaces, one of which is a security boundary: the Go modules, the pinned action SHAs (right to pin, but a pin never updates itself), and the sandbox base image — the entire userland untrusted code runs in, and the one most easily forgotten because nothing about it changes when the Go code does. Also aligns the setup-go pin in the new job with the v7.0.0 the rest of the file already uses.
Bumps python from 3.12-slim-bookworm to 3.14-slim-bookworm. --- updated-dependencies: - dependency-name: python dependency-version: 3.14-slim-bookworm dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
Author
|
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting If you change your mind, just re-open this PR and I'll resolve any conflicts on it. |
dependabot
Bot
deleted the
dependabot/docker/image/python-3.14-slim-bookworm
branch
August 17, 2026 09:27
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps python from 3.12-slim-bookworm to 3.14-slim-bookworm.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)