Scopes Justification
Below we explain why the app requires each of the permissions (scopes) declared in manifest.yml. The descriptions are concise and refer to real usage in the code and the available gadgets.
storage:appβ Persist app configuration, cached/aggregated data, and large tree data split into chunks in Forge Storage/KVS.read:user-configuration:jiraβ Read the current userβs Jira preferences (e.g., locale) to properly render texts.read:avatar:jiraβ Display user/project avatars in UI components that render users.read:project-category:jiraβ Potentially used by the shared API client when resolving project metadata (categories) for configuration screens.read:project:jiraβ Read project metadata when building configuration UIs and issue creation metadata.read:field-configuration:jiraβ Read custom field configuration for a specific field in a project/issue type.read:field:jiraβ List available Jira fields and schemas.read:issue-meta:jiraβ Read issue creation metadata (fields and their defaults) for a project/issuetype.read:issue-details:jiraβ Read issue details to display current values and context (e.g., on portal panel or config screens).read:audit-log:jiraβ Included for administrative visibility required by shared admin tooling; no direct call currently in this repo.read:issue-type:jiraβ Resolve issue types for a project and on a specific issue.read:status:jiraβ Read status metadata that may be referenced by configuration and reporting UI (via standard issue payloads and metadata).read:issue-security-level:jiraβ Ensure issue reads are permitted when issues are protected by security levels; some Jira APIs require this scope to read security level names.read:user:jiraβ Read user details in contexts where accountIds are mapped to display names (report views, configuration UIs).read:issue.changelog:jiraβ Some report UIs may aggregate over changelogs; included for compatibility with shared client components. Not directly referenced in this repository.read:issue:jiraβ General read access to issue resources beyond details-only paths (covers a large part of GET /rest/api/3/issue and related subresources used across UI flows).read:issue.vote:jiraβ Included for completeness with the shared client that can read vote info; not directly used in this repository.write:issue:jiraβ Historically required by similar apps to modify native issue fields. In this app, updates are made to an App-owned field value via the Apps endpoint (see below). Direct writes to core issue fields are not performed in this repository.read:custom-field-contextual-configuration:jiraβ Read custom field contexts/global context for a field to determine visibility and behavior.read:jira-userβ Read user profile information in broader contexts (some Jira Cloud orgs require this scope for certain user APIs). Used by the shared client while resolvingUserobjects withavatarUrls.read:jira-workβ Read issues, fields and metadata necessary for the cascading select UI and related configuration screens; Jira classifies some of these as "work" data.write:jira-workβ Update app-managed field values via the Apps endpoint and potentially evaluate expressions that require broader work scope.manage:jira-configurationβ The Apps Custom Field Configuration APIs may require elevated configuration read access, and some operations in shared clients expect this manage-level scope for reading configuration at scale.read:servicedesk-requestβ Read Jira Service Management (JSM) Request Type fields on the customer portal and internal screens.
Last updated
Was this helpful?
