owncloud / owncloud/developer-certificates

spec-go-signing-tool: three gaps between the spec and the implemented CLI

Open
#78 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
0
Forks
0
Avg merge
51m
Merged PRs (30d)
1

Description

Found while reviewing owncloud/ocsign#21. All three are spec-side; the
implementation is the more complete artifact in each case.

1. §3.6 does not list the core mode top-level directory exclusions. Core
mode drops the top-level data, themes, config, apps, assets and
lost+found directories wholesale — transcribed from the legacy PHP
ExcludeFoldersByPathFilterIterator so the manifest matches the verifier. §3.6
lists core/signature.json, the cruft, core/js/mimetypelist.js, .htaccess
and .user.ini, but not these six, and they appear nowhere else in the spec.
They are normative — a verifier written from the spec alone would disagree with
ocsign on every real server root. ocsign's README cites §3.6 for them, which
is where a reader would reasonably look.

2. §2 flag list is missing --allow-vcs and --version. Both are
implemented; --allow-vcs also gates a new exit-1 condition that §2's exit code
table should mention (--path is a repository checkout).

3. §3.1 says nothing about resolving a symlinked --path. The rule that a
symlink is never followed is about entries inside the tree. The root itself
must be resolved before the walk, or filepath.WalkDir-style enumeration yields
the link and stops — producing an empty manifest under a perfectly valid
signature. ocsign resolves it; the spec should require it so the verifier does
too.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with spec sections §3.6, §2, and §3.1, then compare each requirement with the implemented ocsign CLI and the README references mentioned in the issue. Update the normative specification to cover the directory exclusions, flags and exit condition, and symlinked root paths; done means a verifier following the spec agrees with the implementation.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
cli, documentation, security
Issue type
Documentation
Difficulty
3/5
Estimated time
1-2 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
72/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.