A personal token could read the graph of the bases it reaches
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- rust
- Domain
- api, authorization
Research direction
Start from require_reader_kb, which the issue says document content reads already use, and compare it with the session-only graph read routes for entities, graph view, ontology and extractions. Pick one read route, such as entity detail, and let a personal token through with the owner's role as the ceiling and kb_ids enforced. Done means that token reads an in-scope base, gets 404 for a base outside kb_ids, and that route is listed in 0014 with a reason.
Written by the indexing model from the issue text.
Description
Following #1243: our backend now sets up a base per repository with a write token and pushes statements with the source key. The next step is reading the base back, to check what landed and to answer questions from it (which statements link to which tests, what a section contains, which entities of a class lack a relation). Every graph read takes a session JWT only, so a backend would have to hold a person's seven-day session to read anything.
What would help: let a personal token read the graph of the bases it reaches, acting as its owner, the same way document content already does (0052, require_reader_kb): the owner's role is the ceiling and Viewer is enough, read is the lowest scope so any token qualifies, and a token whose kb_ids exclude the base gets 404. Writes on the same paths stay session-only.
The reads, in small PRs that each stand alone:
- entities: search, detail (GET only), history, fact evidence
- graph view: overview, neighborhood
- ontology: the ontology itself (to turn a class key into a type id) and a type's instances
- a document's extractions, and export (audited with the token id)
Each adds its routes to 0014 with a reason per route.
- Dominant language
- Rust
- Stars
- 8.1k
- Forks
- 1.1k
- Avg merge
- 21h 30m
- Merged PRs (30d)
- 251
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from deeplethe/utopia
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
deeplethe/utopia#1341 · 1 comment ·
Maintainers usually reply within 1 day
-
bug
Difficulty 5/5 Over a week Newbie friendliness 48/100
deeplethe/utopia#1338 · 2 comments ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
deeplethe/utopia#1327 · 2 comments ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
deeplethe/utopia#1322 · 6 comments ·
Maintainers usually reply within 1 day
All issues in deeplethe/utopia
Similar issues
-
good first issue help wanted
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
servo/rust-smallvec#827 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
nowledge-co/hawdb#1400 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
calcit-lang/caps#16 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
penso/herdr-gpui#934 ·
Maintainers usually reply within 1 day
-
🎉 Add BossanovaOpen
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
jaywcjlove/awesome-mac#4096 ·
Maintainers usually reply within 1 day