~bigbes/sr-ht-dolt · parade

main · last commit 5 hours ago · ti41arbu

← Back to the parade

sr-ht-dolt-tmz GraphQL read API for dolt.sr.ht at /query Past Stand

status: closed P2 feature
bd reopen sr-ht-dolt-tmz
Created byEugene Blikh
Ownerbigbes@gmail.com
Created2026-08-15T09:42:53Z
Updated2026-08-15T10:19:36Z
Closed2026-08-15T10:19:36Z
Description
dolt.sr.ht has no GraphQL surface at all: /query is a 404, so nothing on the instance that speaks SourceHut GraphQL can read it, and it cannot federate into api.sr.ht. Add a read-only schema following the in-family donor spec.sr.ht (gqlgen + core-go's WithSchema): databases/database with cursor pagination, me, version, owner-visible ACL, plus branches, the commit log and the table list. Rows and diffs stay on /mcp, where the clipped-read semantics live and where the types are least settled.
Design
Donor: ~/data/home/sourcehut-specs/graph/ (gqlgen 0.17.36, schema.graphqls + resolvers + Options-struct server, mounted via core-go). Reads go through the same browse/ session the web and MCP surfaces use, so the three cannot disagree. Access is the existing bearer plane (meta PAT scoped dolt.sr.ht/repos:RO, tokens.sr.ht dolt:read) plus core.Allowed per database — NOT spec.sr.ht's single-owner gate, because dolt is multi-user with PUBLIC/UNLISTED/PRIVATE and ACLs.
Acceptance criteria
POST /query answers an introspection query and { databases { results { name visibility } } }; a caller sees exactly what the web UI would list for them, anonymous included; /query/api-meta.json serves a non-null scopes list; api-origin is documented for federation.

Depends on

No outgoing dependencies.

Depended on by

  • sr-ht-dolt-tmz.1 — gqlgen scaffolding and the database metadata schema parent-child
  • sr-ht-dolt-tmz.3 — Browse fields: branches, commit log, table list parent-child
  • sr-ht-dolt-tmz.4 — Wire /query into the daemon, api-meta.json scopes and docs parent-child
  • sr-ht-dolt-tmz.2 — The read gate: bearer auth and per-database visibility parent-child

No comments.

Close reason

Closed
  • Eugene Blikh created the issue · 2026-08-15T12:42:52Z
  • Eugene Blikh added subtask sr-ht-dolt-tmz.1 · 2026-08-15T12:43:00Z
  • Eugene Blikh added subtask sr-ht-dolt-tmz.2 · 2026-08-15T12:43:01Z
  • Eugene Blikh added subtask sr-ht-dolt-tmz.3 · 2026-08-15T12:43:02Z
  • Eugene Blikh added subtask sr-ht-dolt-tmz.4 · 2026-08-15T12:43:02Z
  • Eugene Blikh closed the issue · 2026-08-15T13:19:36Z
    Closed
Stored rows — what this pane was built from, as read
issues 1 row
id sr-ht-dolt-tmz
content_hash eb5116fe83783ab2ddf1e441205b41872fdf766ca7e2f9fdd514df4159a39def
title GraphQL read API for dolt.sr.ht at /query
description dolt.sr.ht has no GraphQL surface at all: /query is a 404, so nothing on the instance that speaks SourceHut GraphQL can read it, and it cannot federate into api.sr.ht. Add a read-only schema following the in-family donor spec.sr.ht (gqlgen + core-go's WithSchema): databases/database with cursor pagination, me, version, owner-visible ACL, plus branches, the commit log and the table list. Rows and diffs stay on /mcp, where the clipped-read semantics live and where the types are least settled.
design Donor: ~/data/home/sourcehut-specs/graph/ (gqlgen 0.17.36, schema.graphqls + resolvers + Options-struct server, mounted via core-go). Reads go through the same browse/ session the web and MCP surfaces use, so the three cannot disagree. Access is the existing bearer plane (meta PAT scoped dolt.sr.ht/repos:RO, tokens.sr.ht dolt:read) plus core.Allowed per database — NOT spec.sr.ht's single-owner gate, because dolt is multi-user with PUBLIC/UNLISTED/PRIVATE and ACLs.
acceptance_criteria POST /query answers an introspection query and { databases { results { name visibility } } }; a caller sees exactly what the web UI would list for them, anonymous included; /query/api-meta.json serves a non-null scopes list; api-origin is documented for federation.
notes
status closed
priority 2
issue_type feature
assignee NULL
estimated_minutes NULL
created_at 2026-08-15T09:42:53Z
created_by Eugene Blikh
owner bigbes@gmail.com
updated_at 2026-08-15T10:19:36Z
closed_at 2026-08-15T10:19:36Z
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 Closed
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
dependencies 4 rows
id b1d48423-c92b-5b77-a6ee-1a3712b164aa
issue_id sr-ht-dolt-tmz.1
type parent-child
created_at 2026-08-15T12:43:00Z
created_by Eugene Blikh
metadata �{}
thread_id
depends_on_issue_id sr-ht-dolt-tmz
depends_on_wisp_id NULL
depends_on_external NULL
id dc054773-5238-579e-91ae-f4801168c332
issue_id sr-ht-dolt-tmz.3
type parent-child
created_at 2026-08-15T12:43:02Z
created_by Eugene Blikh
metadata �{}
thread_id
depends_on_issue_id sr-ht-dolt-tmz
depends_on_wisp_id NULL
depends_on_external NULL
id f2109612-cd58-50e8-a1ab-8aec9388db20
issue_id sr-ht-dolt-tmz.4
type parent-child
created_at 2026-08-15T12:43:02Z
created_by Eugene Blikh
metadata �{}
thread_id
depends_on_issue_id sr-ht-dolt-tmz
depends_on_wisp_id NULL
depends_on_external NULL
id fc8267bc-dac0-5758-b3ec-98f207895c28
issue_id sr-ht-dolt-tmz.2
type parent-child
created_at 2026-08-15T12:43:01Z
created_by Eugene Blikh
metadata �{}
thread_id
depends_on_issue_id sr-ht-dolt-tmz
depends_on_wisp_id NULL
depends_on_external NULL
events 2 rows
id 01a004cd-845e-7ba0-b61f-b738195d4b9e
issue_id sr-ht-dolt-tmz
event_type created
actor Eugene Blikh
old_value
new_value
comment NULL
created_at 2026-08-15T12:42:52Z
id 01a004ef-242f-751c-af60-34df94590174
issue_id sr-ht-dolt-tmz
event_type closed
actor Eugene Blikh
old_value
new_value Closed
comment NULL
created_at 2026-08-15T13:19:36Z