Policy · rule
policy.public_grant_missing
Route anyone may call reaches what not everyone may do.
Area 9, Policy; not declinable; the next step is usually the human's.
A route anyone may call reaches an entity that does not grant Access.public:
type ArticleTitle = Text { max_length: 120}type ArticleView = Output { title: ArticleTitle}entity Article { id: Uuid title: ArticleTitle policy: { read: [Access.authenticated] }}query find_article(article_id: Article.id) fails ArticleNotFound -> ArticleView { from: Article where: Article.id == article_id missing: ArticleNotFound}routes Articles { prefix: /articles GET /{article_id: Article.id} { authentication: RouteAuthentication.none output: ArticleView run: find_article(article_id) }}
error: `GET /articles/{article_id}` lets anyone call it, but not everyone may read `Article` --> main.jadpo:27:5 |27 | GET /{article_id: Article.id} { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ anyone may call it reason: A route with `authentication: RouteAuthentication.none` has no caller, so everything it reaches needs `Access.public`; `Article`'s `read:` doesn't name `Access.public`. Either alone is not enough. next: Add `Access.public` to `Article`'s `read:`, or remove `authentication: RouteAuthentication.none` from the route (human) rule: policy.public_grant_missing help: https://jadpo.dev/docs/errors/policy.public_grant_missingcheck failed: 1 error, 1 file
Markdown for agents: /docs/errors/policy.public_grant_missing.md.Built from Jadpo main at a707efb.