specs/git_ns/right/list/v0_2/payload library

Classes

AdminRightRow
One right as the administrator's rights console shows it: a recorded RightRecord restated with the membership facts an administrator needs (subjectMember, granterDeparted), or a role-derived grant that carries no record. git-ns/right/list and git-ns/right/issued-by-departed are its only producers.
BreakGlass
How a self-granted right came to be, and whether another administrator has since ratified it. A record whose breakGlass has no ratifiedBy is unratified: it is live and published like any other right, it does not count toward the last-owner or last-admin invariants, and any community administrator or namespace admin of its namespace may revoke it. Ratification (git-ns/right/ratify) sets ratifiedBy and ratifiedAt; from then on the record is an ordinary grant, and breakGlass stays as its history. Never published to the Trust Registry.
Payload
A community administrator enumerates every git right the VTC knows of, recorded and role-derived alike, across every namespace. The outer document members (id, type, issuer, recipient, issuedAt, expiresAt, proof) are owned by the framework — SPEC §6.3.
Response
The matching rows, ordered by resource then subject.

Extension Types

One of the five git rights. Each string is also the TRQP action the VTC publishes the right under in its Trust Registry, so it is carried verbatim. git.ns.admin and git.repo.create apply to a namespace resource; git.repo.own and git.repo.maintain to a repository resource; git.commit.sign to either.
RightOrigin
Where a right an administrator sees came from. recorded — a git-ns/* record, governed by the rights model and returned nowhere the subject cannot eventually see it through git-ns/view. roleDerived — a v0.1 \[hooks.git-trust\] grant_on_role grant: published by the hook relay from the community's own role configuration, never written by any git-ns/* task, and not itself a RightRecord — it has no grantedAt, no expiresAt and no reason, only a subject, a right and a resource.

Constants

deprecation → const String?
Why this specification version is deprecated, or null when it is current.
extendsVersion → const String?
The MAJOR.MINOR this version declares it extends (SPEC §5.2, "Declared extension"), or null when it declares none.
payloadSchemaJson → const String
This specification's payload schema, as JSON text.
responsePayloadSchemaJson → const String
As payloadSchemaJson, for the success-response variant.
responseSpec → const SpecPolicy
The SPEC §7.2 policy for the success-response variant.
responseTypeUri → const String
The success-response form of typeUri (SPEC §4.4.1).
spec → const SpecPolicy
The SPEC §7.2 policy for the request variant, taken from this specification's front matter.
typeUri → const String
The Trust Task type URI this library's Payload is carried under.

Typedefs

Did = String
A bare DID in the W3C DID Core syntax (§3.1): did:, a method name of lowercase letters and digits, :, and a method-specific id of colon-separated segments drawn from A-Z a-z 0-9 . - _ and percent-encoded octets, the last segment non-empty. A DID URL is not a DID: no path, query or fragment (/, ?, #), so a verification-method id such as did:key:z6Mk…#z6Mk… is refused. Compared by exact string equality — no case folding or percent-decoding. A consumer MUST still treat the value as data: the pattern keeps shell metacharacters, whitespace and quotes out of the wire form, but it does not make a DID safe to splice into a command or markup.
Ext = Map<String, dynamic>
Vendor-namespaced extension object per SPEC.md §4.5.1. Each immediate key MUST be a reverse-DNS namespace; structure under each namespace is opaque to the framework.
Resource = String
A forge-qualified resource: &lt;forge-host&gt;/&lt;owner&gt; for a namespace, or &lt;forge-host&gt;/&lt;owner&gt;/&lt;repo&gt; for one repository, all lowercase — github.com/acme, github.com/acme/widgets, codeberg.org/acme. The forge is never implied: acme/widgets alone is not a resource. Containment is by whole segment: github.com/acme contains github.com/acme/widgets and does not contain github.com/acme-labs/x or codeberg.org/acme/widgets.