OpenProposal 3.0 JSON Schema Unofficial

Decision records · Value formats

D-009 Which characters may each part of a catalog_ref hold?

Gap Decision 7 on the supporting page of #121. Cited on main and with the open PRs.

What the schemas do

Any characters except the delimiters / and @, a space, and control characters; each part non-empty.

Options

  • delimiters-only Chosen

    Any characters except the delimiters / and @, a space, and control characters; each part non-empty.

  • token-parts

    Letters, digits, _, and - only, with an integer version.

  • uri-path

    Each part is an RFC 3986 path segment, percent-encoded.

Why

The specification gives the four parts and their delimiters, and one example, but no character set. Splitting on / and @ is unambiguous only if no part holds them, and "version-pinned" needs a non-empty version after @. Nothing else is stated, so nothing else is constrained: the example's version is an integer, but a date or a SemVer pins a version as well. A space or a control character in a reference is a copy error, never a name, and excluding them keeps a trailing newline invalid, as type rules § 2 requires of every pattern.

What we ask the specification to state

Give the catalog_ref grammar: the characters each part may hold, and the form of <version>. Say whether <seller_namespace> is the seller's identity domain, as a namespaced term's domain is.

The specification lines it rests on

Each line is quoted as the record pins it. Expand an item to read the quote.

main

  • § 2.2, code block 1 L97-L100 at 44dfaaf
    catalog_ref: "<seller_namespace>/<collection>/<entry_id>@<version>" example: "examplepub/audiences/smb-decision-makers@3"
  • § 2.2, a requirement L106 at 44dfaaf
    References MUST be version-pinned.

With the open PRs

What it shapes

main: CatalogRef

With the open PRs: CatalogRef

The record's YAML file