tr
TryGhost
GitHub
Ghost
Workspace
GitHub
CI Pipeline Executions
Current execution
Succeeded
chore/metafields-open-definition-reads
Runs and Agents
Configuration
Self-Healing CI
Project Graph
Circular Dependencies
Enterprise
Resource Usage
Analysis
Conformance
Enterprise
Runs
Current run
Succeeded
Tasks
Resource Usage
Insights
Compare tasks
Analytics
Sign in
Toggle sidebar
Removed the permission to read member custom field definitions ref https://linear.app/ghost/issue/BER-3922/rename-the-code-behind-the-metafields-api-to-match-the-domain-language Reading a field definition is no longer gated by a permission. A definition says only that the site collects a shoe size, and every signed-in member is already shown the whole list through Portal, so holding it back from staff protected nothing that was not already on offer elsewhere. It was also inverted. An integration holding member browse received members' field values on the member payload, which never consults this permission, while a request for the definitions describing those same values was refused. It could read the data but not the schema, which is the wrong way round. The routes had already drawn the line correctly and deliberately: reads are unflagged so Admin can ask any site and get an empty list, and everything that changes something is flagged. Only the permission layer had not caught up. What remains on the resource is defining fields, which stays with the publisher. The smaller change alongside it is one of order. Which namespace is being written to now settles before who is asking, so a namespace nobody can define in refuses on that ground whatever role the caller holds, rather than answering with a missing permission that no one could have been granted. That is also where namespace ownership belongs once an app owns a namespace of its own, since the caller will then have to be that app rather than hold a role. Claude-Session: https://claude.ai/code/session_01XFCbqgYHYhd9rZ5WXtqZyT
nx run ghost-monorepo:lint:boundaries
⌘K
Succeeded
nx run ghost-monorepo:lint:boundaries
Click to copy
Linux
4 CPU cores
read-write
access token used
80a7ff60
30497
GitHub
Ghost
Workspace