~bigbes/sr-ht-dolt · parade

main · last commit 5 hours ago · ti41arbu

← Back to the parade

sr-ht-dolt-3r6 Derive api-meta.json scope list from a single core.Grants array Lined Up

status: open P2 task
bd update sr-ht-dolt-3r6 --claim bd close sr-ht-dolt-3r6
Created byEugene Blikh
Ownerbigbes@gmail.com
Created2026-08-17T20:39:11Z
Updated2026-08-17T20:39:11Z
Description
What is wrong: dolt's `api-meta.json` scope list and its locally checked grant string are declared and maintained separately, instead of being derived from one source of truth.

Why it matters: when the two lists drift, a rename silently invalidates every minted token and nothing on the service side notices — this is the exact mechanism behind D07 (tokens' SPEC minting `cover:` grants no service honors) and D16 (the mint vocabulary having no cross-check against services), applied within a single service instead of across services.

Sibling that already does it correctly: `sourcehut-artifacts/core/grants.go` + `core/grants_test.go` (and bench's equivalent) derive both the scope list and local grant validation from one `core.Grants` array and pin the agreement with a test.

Fix: adopt the single-array + agreement-test pattern in dolt: define one `core.Grants` array dolt's `api-meta.json` scope list and local validation both read from, and add a test asserting they agree.

Status: reported, not independently re-verified by direct code reading for this register entry.

Audit: D17 (cross-repo audit, 2026-08-17)

Depends on

No outgoing dependencies.

Depended on by

Nothing depends on this issue.

No comments.

  • Eugene Blikh created the issue · 2026-08-17T23:39:10Z
Stored rows — what this pane was built from, as read
issues 1 row
id sr-ht-dolt-3r6
content_hash 1b7565cdfd5db4add5867091cfc24a4aa17cd5655199577d4cd1fcc011a4e0c3
title Derive api-meta.json scope list from a single core.Grants array
description What is wrong: dolt's `api-meta.json` scope list and its locally checked grant string are declared and maintained separately, instead of being derived from one source of truth. Why it matters: when the two lists drift, a rename silently invalidates every minted token and nothing on the service side notices — this is the exact mechanism behind D07 (tokens' SPEC minting `cover:` grants no service honors) and D16 (the mint vocabulary having no cross-check against services), applied within a single service instead of across services. Sibling that already does it correctly: `sourcehut-artifacts/core/grants.go` + `core/grants_test.go` (and bench's equivalent) derive both the scope list and local grant validation from one `core.Grants` array and pin the agreement with a test. Fix: adopt the single-array + agreement-test pattern in dolt: define one `core.Grants` array dolt's `api-meta.json` scope list and local validation both read from, and add a test asserting they agree. Status: reported, not independently re-verified by direct code reading for this register entry. Audit: D17 (cross-repo audit, 2026-08-17)
design
acceptance_criteria
notes
status open
priority 2
issue_type task
assignee NULL
estimated_minutes NULL
created_at 2026-08-17T20:39:11Z
created_by Eugene Blikh
owner bigbes@gmail.com
updated_at 2026-08-17T20:39:11Z
closed_at NULL
closed_by_session
external_ref NULL
spec_id
compaction_level 0
compacted_at NULL
compacted_at_commit NULL
original_size NULL
sender
ephemeral 0
wisp_type
pinned 0
is_template 0
mol_type
work_type
source_system
metadata �{}
source_repo
close_reason
event_kind
actor
target
payload
await_type
await_id
timeout_ns 0
waiters
hook_bead
role_bead
agent_state
last_activity NULL
role_type
rig
due_at NULL
defer_until NULL
no_history 0
started_at NULL
is_blocked 0
events 1 row
id 01a01173-18b3-77ac-bc0c-b57232e94724
issue_id sr-ht-dolt-3r6
event_type created
actor Eugene Blikh
old_value
new_value
comment NULL
created_at 2026-08-17T23:39:10Z