Publish first signed Site Registry catalog trust
Some checks failed
Standalone registry checks / check (push) Has been cancelled

This commit is contained in:
Nic Weyand 2026-09-20 11:57:47 -04:00
commit 16c740a98f
Signed by: nicweyand
SSH key fingerprint: SHA256:2te+ycJIQON/Wo/dH6+ZkFSQ4HnHWpetV2azx9E65dQ
8 changed files with 121 additions and 13 deletions

View file

@ -12,10 +12,12 @@ facebook -> Facebook (Wikidata Q355) -> https://www.facebook.com/
public suffix: com public suffix: com
``` ```
The repository contains the library, CLI, schemas, migrations, and synthetic The repository contains the library, CLI, schemas, migrations, synthetic
fixtures. It does not contain a preapproved production dataset. A publisher must fixtures, and independently authenticated public trust roots. It does not place a
import source evidence, collect signed reviews, and distribute a signed registry mutable production database in Git. Publishers import source evidence, collect
generation. signed reviews, and distribute immutable signed registry generations. The first
public catalog generation is available as a release asset; see
[Public catalog](docs/PUBLIC_CATALOG.md).
## The basic idea ## The basic idea

View file

@ -101,12 +101,15 @@ revocation history. Never mutate a complete generation to migrate it. See
## Argand integration ## Argand integration
`UPSTREAM.json` records the original Argand extraction baseline and file hashes. `UPSTREAM.json` records the original Argand extraction baseline and file hashes.
The last recorded downstream integration replaced Argand's embedded crate with Argand pins signed v0.5.0 revision
signed v0.3.0 revision `ac8282093d8a815c6227cff86e1f40714d510bcd` at Argand `3d3e08cdfd303df9fbd347a9bab2ba52ad575759`. The public beta uses Site Registry as
commit `d9dfd1585ce21d9c4136bcc24fa01fe3bfb8ed6e`. Navigate's authoritative auto-route catalog. Its native `navigation-catalog/v2`
file is only a collection- and content-policy-bound serving projection compiled
from one exact registry generation; it is not a second independently curated
destination catalog.
Version 0.5 is handed off as a signed standalone revision. Argand should update its Argand source commit `564ee5fc2fa0974a7b0557a914f274bbd4ab654c` records that boundary and the first
full Git `rev` in a separate coordinated source/build window, compare contract public-beta activation. Changing the code dependency alone still does not activate
changes, and rerun navigation compiler, native resolver, API, abstention, a data generation or approve a destination. Every downstream must verify the
revocation and clean-process gates. Changing the code dependency does not activate signed generation, preserve abstentions, apply its own safety policy, and bind any
a registry generation or approve a public destination. serving projection to its own eligible corpus or directory policy.

View file

@ -8,6 +8,7 @@
- [Migrating to 0.4](MIGRATING-0.4.md): writer migration and trust transition. - [Migrating to 0.4](MIGRATING-0.4.md): writer migration and trust transition.
- [Source licenses](../crates/argand-site-registry/LICENSE_SOURCES.md): exact terms and attribution. - [Source licenses](../crates/argand-site-registry/LICENSE_SOURCES.md): exact terms and attribution.
- [Consumers](CONSUMERS.md): Rust, Python/CLI, data distribution and Argand transition. - [Consumers](CONSUMERS.md): Rust, Python/CLI, data distribution and Argand transition.
- [Public catalog](PUBLIC_CATALOG.md): download, independent trust roots, verification, scope and refresh contract.
- [Trust](TRUST.md): enforced checks and publisher/consumer responsibilities. - [Trust](TRUST.md): enforced checks and publisher/consumer responsibilities.
- [Publishing](PUBLISHING.md): reviewer keys, candidate acceptance and activation. - [Publishing](PUBLISHING.md): reviewer keys, candidate acceptance and activation.
- [Evaluation](EVALUATION.md): bounded JSONL judgments and result interpretation. - [Evaluation](EVALUATION.md): bounded JSONL judgments and result interpretation.

62
docs/PUBLIC_CATALOG.md Normal file
View file

@ -0,0 +1,62 @@
# Public signed catalog
The v0.5.0 Forgejo release publishes the first immutable data generation that any
Site Registry consumer can verify and resolve:
- release: <https://git.argand.org/nicweyand/argand-site-registry/releases/tag/v0.5.0>
- asset: `argand-site-registry-catalog-20260920-v1.tar.gz`
- asset SHA-256:
`d878fa057397effa5dc729d2fa3a689c8edd1f4112ef1326dd6131b3fdeab63e`
- generation pin:
`ede14746da8817aafdf705dd88cfeabbe8d23e1991e43a304acd8eca9249b18a`
The release also carries a checksum file and an OpenSSH signature under namespace
`argand-site-registry-release`. Verify it against
[`trust/public-catalog-20260920/publisher-allowed-signers`](../trust/public-catalog-20260920/publisher-allowed-signers).
The signed Git history is the independent channel for the trust root; do not learn
the only trusted key from the archive it authenticates.
```bash
sha256sum --check argand-site-registry-catalog-20260920-v1.tar.gz.sha256
ssh-keygen -Y verify \
-f trust/public-catalog-20260920/publisher-allowed-signers \
-I argand-site-registry-publisher-v1 \
-n argand-site-registry-release \
-s argand-site-registry-catalog-20260920-v1.tar.gz.sig \
< argand-site-registry-catalog-20260920-v1.tar.gz
```
After extraction, verify every member with `SHA256SUMS`, then authenticate the
generation and exact reviewer trust root:
```bash
argand-site-registry activate \
--generation public-release-v0.5.0/catalog \
--current current.json \
--allowed-signers trust/public-catalog-20260920/publisher-allowed-signers \
--allowed-reviewers trust/public-catalog-20260920/reviewer-allowed-signers \
--identity argand-site-registry-publisher-v1
argand-site-registry resolve \
--generation public-release-v0.5.0/catalog \
--pin ede14746da8817aafdf705dd88cfeabbe8d23e1991e43a304acd8eca9249b18a \
--query "yahoo mail"
```
## Scope and trust
This first catalog is deliberately small. Its disclosed policy uses one automated
evidence-gate reviewer group rather than claiming human-review quorum. Fresh exact
endpoint observations are required, and source conflicts or dangerous drift need
two groups, so the single automated reviewer must abstain on those risks. Sticky
revocations and publisher/reviewer key separation remain enabled.
Consumers decide whether this policy is appropriate for their use. Preserve typed
abstentions, retain attribution, and apply independent malware and content policy.
Do not route to the first raw lookup result. High-risk or disputed catalogs should
use the unchanged two-human-reviewer reference policy.
The generation's approvals expire. Installing an immutable archive is not a promise
that every decision stays valid forever: use the resolver's requested time,
consume cumulative signed revocation feeds when published, and move to a newly
signed full generation before relying on renewed decisions.

View file

@ -0,0 +1,15 @@
# Argand automated high-confidence navigation policy
This generation is a machine-reviewed public navigation directory. It does not
claim two independent human reviewers. The dedicated reviewer identity approves
only exact, unambiguous name and official-site assertions after source evidence
and a fresh bounded endpoint observation are present.
The policy keeps sticky revocations, requires separate reviewer and publisher
keys, blocks source conflicts and dangerous drift, and gives those risk classes
a two-group threshold that this automated identity cannot satisfy. Ambiguous,
conflicting, stale, unobserved, expired, or revoked routes therefore abstain.
Consumers choose whether to trust this publisher and policy. The stricter
two-human-reviewer reference policy remains unchanged and available for
high-risk, disputed, or manually governed catalogues.

View file

@ -0,0 +1,23 @@
{
"schema": "argand.site-policy/v1",
"name": "argand-automated-high-confidence-navigation-v1",
"names": { "approvals": 1, "groups": 1 },
"edges": { "approvals": 1, "groups": 1 },
"equivalences": { "approvals": 2, "groups": 2 },
"sticky_revocations": true,
"publisher_reviewer_separation": true,
"require_name_votes": true,
"allow_legacy_reviews": false,
"maximum_approval_days": 30,
"require_edge_observation": true,
"maximum_observation_age_days": 7,
"block_source_conflicts": true,
"block_dangerous_drift": true,
"reviewer_groups": {
"argand-evidence-gate-v1": "argand-automated-evidence"
},
"risk_thresholds": {
"source_conflict": { "approvals": 2, "groups": 2 },
"dangerous_drift": { "approvals": 2, "groups": 2 }
}
}

View file

@ -0,0 +1 @@
argand-site-registry-publisher-v1 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIGfQ/Nk4eQsi7rwhlS3K9/P6vZ+6IZZka2V62iUfKOlB argand site registry publisher 2026-09-20

View file

@ -0,0 +1 @@
argand-evidence-gate-v1 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICT/p/gmy3xn+X9H34+aDxW3ss725jn1Ugr+k9dAPMju argand automated evidence reviewer 2026-09-20