docs: document ocis-workflows in the image lifecycle - #3
Merged
Conversation
owncloud/ocis-workflows joined the organisation but was absent from the authoritative image document. It is the first extension image here — one deployed alongside owncloud/ocis rather than instead of it — and the first to ship two deployables in a single image, so the topology and build sections needed more than a name added to a list. Two properties are worth the security team's attention and are now written down: - It is rolling-only. Upstream cuts no semver releases yet, so there is no version matrix and `latest` tracks upstream main. Consumers who need a fixed target must pin the date or `sha-` tag. - Because the Go stage compiles the shipped binary, the Go standard library in that binary is whatever the pinned `golang:*-alpine` digest provides, so a stale digest surfaces as `stdlib` findings against the binary in the Trivy gate. The fix is bumping the digest, not adding a `.trivyignore` entry. This already applies to `ocis` and was undocumented. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Signed-off-by: Thomas Müller <1005065+DeepDiver1975@users.noreply.github.com>
LukasHirt
approved these changes
Aug 25, 2026
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.
Why
owncloud/ocis-workflowsjoined the organisationbut is absent from this document, which is the authoritative description of how our images
are built, tagged, scanned and published — and is written primarily for the security team.
An image the security team cannot find here is an image they cannot assess.
It needed more than a name appended to the repo list. It is the first extension image
in the org — deployed alongside
owncloud/ocisrather than instead of it — and the firstto ship two deployables in a single image, so §1's topology and §2's build strategies
both needed real text.
What changed
/web/apps/workflowshandoff; repo list and inheritance diagram updateddocker-build-native.ymlocis, but onlyGIT_REF=mainis used todayapk upgradewording covers both Alpine images; noted that the weekly rebuild is also how upstream application changes land here; §5f records that there is nothing to bump/healthzsmoke testapk upgraderow extended; new row for Go stdlib CVEs in from-source imagesTwo things the security team should know
Both are new prose, not just a name in a table:
It is rolling-only. Upstream cuts no semver releases yet, so there is no version matrix
and
latesttracks upstreammain. A deployment that needs a fixed target must pin thedate or
sha-tag. This is called out in §3 rather than left to be inferred from theabsence of version tags.
A stale Go toolchain digest is a CVE exposure, and it is not obvious. Because the Go
stage compiles the shipped binary, the Go standard library linked into that binary is
whatever the pinned
golang:*-alpinedigest provides. A stale digest surfaces asstdlibfindings against
/usr/local/bin/app— not against the OS layer, where you would lookfirst — and the fix is bumping the digest, not adding a
.trivyignoreentry.This is not hypothetical. It is exactly why
ocis-workflowshad never published a singleimage: its pinned digest was Go 1.26.5, and eight HIGH stdlib CVEs failed the Trivy gate on
every run since the repo was created. See
owncloud-docker/ocis-workflows#5,
which fixes it. This property already applies to
ocisand was undocumented, so §2d andthe new §7 row are written to cover both.
Verification
Prose only — no workflow or config in this repo changes. Every claim added was checked
against the code rather than inferred from the existing text:
CGO_ENABLED=0, the non-root uid, bothCOPY --fromtargets andthe
apk upgradeline: read fromocis-workflows/Dockerfile.multiarch.preparejob resolvingmainHEAD intoGIT_SHA/REVISION, thelatest/<YYYYMMDD>/sha-<short>tag set, the weekly0 0 * * 0cron, the non-PR pushcondition and the port-9109
/healthzsmoke test: read from that repo'smain.yml.gobinarybehaviour: observed in that repo's CI logs, both before the fix(8 HIGH against
usr/local/bin/app) and after (0 on both architectures).No existing repo's description was modified.
🤖 Generated with Claude Code