Skip to content

docs: document new PKI code-signing method for server v11 - #1567

Merged
DeepDiver1975 merged 4 commits into
masterfrom
feat/v11-pki-code-signing
Jul 21, 2026
Merged

docs: document new PKI code-signing method for server v11#1567
DeepDiver1975 merged 4 commits into
masterfrom
feat/v11-pki-code-signing

Conversation

@DeepDiver1975

Copy link
Copy Markdown
Member

Summary

ownCloud Classic 11 replaces the legacy occ integrity:sign-app flow with a new PKI-based code-signing system, built from two repositories:

  • owncloud/ocsign — standalone Go CLI that produces appinfo/signature.json without a running ownCloud instance.
  • owncloud/developer-certificates — the PKI: certificate-request intake (issue form + repo-control challenge), public issuance ledger, CRL, and revocation.

Third-party app signing becomes mandatory on v11+: unsigned or invalidly-signed apps are blocked on install/update/enable (not merely warned).

Changes

  • Rewrite the developer Code Signing page around the new PKI: certificate request (CSR → issue form → .well-known challenge), signing with ocsign (flags + exit codes), Mode-2 attestation marked planned / not yet available, renew/revoke (CMS + VDP), legacy transition note (pre-2026 signatures accepted with a warning until 2026-12-31), and refreshed error list.
  • Admin Code Signing page: correct "optional" → mandatory on v11+, add PKI/CRL verification, per-app disable escape hatch and git-channel exemption; remediation section and its #fixing-invalid-code-integrity-messages anchor kept intact.
  • Mark occ integrity:sign-app / integrity:sign-core deprecated in favour of ocsign; keep check-*.
  • Surface the signing requirement on the Marketplace publishing page (previously unmentioned).

Notes

  • Mode-2 attestation and the developer-certificates repo links are documented now but go live at the v11 release; some links may 404 until then.
  • A companion update to owncloud/developer-certificates/docs/developer-guide.md (cross-linking back here) is intended as a separate PR once that repo is public.

Verification

  • Local Antora build is clean for all four pages; only pre-existing migrating_to_ocis.adoc cross-component xref errors remain (present on master).
  • Confirmed in built HTML: all internal anchors and cross-page xrefs (dev→admin, publishing→signing, occ deprecation note) resolve; no unresolved xref markers.

🤖 Generated with Claude Code

ownCloud Classic 11 replaces the legacy occ integrity:sign-app flow with a
PKI-based system: certificates are issued by owncloud/developer-certificates
(issue form + repo-control challenge, public ledger, CRL) and apps are signed
with the standalone owncloud/ocsign CLI. Third-party app signing becomes
mandatory; unsigned/invalidly-signed apps are blocked on install/update/enable.

- Rewrite developer Code Signing page around the new PKI: certificate request,
  ocsign usage, Mode-2 attestation (marked planned/not yet available),
  renew/revoke, legacy transition (accepted with a warning until 2026-12-31),
  and refreshed error list.
- Admin Code Signing page: correct "optional" to mandatory on v11+, add PKI/CRL
  verification, per-app disable escape hatch and git-channel exemption; keep the
  remediation section and its anchor.
- Mark occ integrity:sign-app / sign-core deprecated in favour of ocsign.
- Surface the signing requirement on the Marketplace publishing page.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Thomas Müller <1005065+DeepDiver1975@users.noreply.github.com>
@DeepDiver1975
DeepDiver1975 requested a review from a team as a code owner July 21, 2026 13:13
These server-side signing commands are removed in v11 (signing now happens
externally with ocsign), so the docs no longer list them or describe them as
"deprecated". The historical transition note for apps signed under the pre-2026
scheme (honored with a warning until 2026-12-31) is kept, reworded to not
reference the removed commands.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Thomas Müller <1005065+DeepDiver1975@users.noreply.github.com>
Comment thread modules/developer_manual/pages/app/advanced/code_signing.adoc Outdated
EXTRA_FILE means a file exists on disk but is not listed in
signature.json — i.e. an added file. A removed file triggers
FILE_MISSING instead. Drop the misleading "or removed" wording,
per review feedback from Phil.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Thomas Müller <1005065+DeepDiver1975@users.noreply.github.com>

@DeepDiver1975 DeepDiver1975 left a comment

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

Docs-only PR (4 files, +298/−159) rewriting the code-signing docs for the ownCloud 11 move from occ integrity:sign-app to the PKI-based ocsign flow. Coherent, well-structured, and the description matches the diff.

Correctness & consistency ✅

Verified against the checkout:

  • Internal anchors resolvexref:legacy-signatures[][#legacy-signatures] and xref:mode-2-attestation[][#mode-2-attestation] both match.
  • Cross-page xrefs resolve — dev→admin (#fixing-invalid-code-integrity-messages), publishing→signing, and the occ deprecation note all target existing files/anchors. xref:errors[here] in the admin file is pre-existing and untouched.
  • Attributes exist{oc-marketplace-url} in global-attributes.yml; :ocsign-repo-url: / :developer-certificates-url: defined in the page header.
  • :toc: right matches project convention (used in 164 module files).
  • The "mandatory on v11+" message and the 2026-12-31 legacy cutoff are stated consistently across all four pages.

Notes

  • EXTRA_FILE wording (thanks @phil-davis) — fixed in b9e017c: EXTRA_FILE means a file is present on disk but not listed in signature.json (an added file); a removed file is FILE_MISSING. Dropped "or removed".
  • Marketplace URL rendering (nit) — the rewritten dev page uses {oc-marketplace-url}[...] (no trailing slash) while the rest of the repo uses {oc-marketplace-url}/[...]. Both render fine since the attribute has no trailing slash, but /[...] matches the existing idiom.
  • Pre-release links — Mode 2 attestation is clearly marked Planned / not yet available, and some developer-certificates links may 404 until the v11 release (flagged in the PR body). Since master maps to the published next site, worth confirming with the team whether exposing 404-prone links now is acceptable or should be gated to the release branch. Not a correctness defect.

Risks

Low. Docs-only, no build/extension changes. Primary risk is the intentional pre-release link/feature exposure, already surfaced by the author.

Verdict

Approve. Well-organized rewrite; all anchors, xrefs, and attributes verified to resolve in this checkout.

Match the {oc-marketplace-url}/[...] form used throughout the repo
rather than {oc-marketplace-url}[...]. No rendered-output change;
consistency only.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Thomas Müller <1005065+DeepDiver1975@users.noreply.github.com>
@DeepDiver1975
DeepDiver1975 requested a review from phil-davis July 21, 2026 15:08
@DeepDiver1975
DeepDiver1975 merged commit e85b87a into master Jul 21, 2026
2 checks passed
@DeepDiver1975
DeepDiver1975 deleted the feat/v11-pki-code-signing branch July 21, 2026 15:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants