FieldLock for Jira › Guides

How to make a Jira field read-only in Jira Cloud

"Read-only" hides three different questions: read-only for whom, read-only when, and read-only against what — the issue view only, or the REST API and automation too. The native answers differ on all three.

Decide what you mean first

Your sentenceWhat you are asking forWhere to look
"Nobody should edit this field, ever"read-only for everyonetake it off the Edit screen
"Read-only once the issue reaches a status"read-only after a point in timejira.issue.editable — but it freezes the whole issue
"Read-only except for one role"an edit restrictionlooping transition with a role condition
"Read-only until someone approves a change"read-only with a keyan app — see below

The native routes, and where each one stops

All of them assume a company-managed project — team-managed projects do not expose screens, field configurations or workflow properties in the same way.

1. Remove the field from the Edit screen

The simplest read-only there is: the field appears on the View screen, not on the Edit screen, so the issue view offers no way to change it. It applies to everyone, and it does not stop a write through the REST API, a bulk edit or an automation rule — those do not go through your screens.

2. The jira.issue.editable status property

Set on a status, it makes issues in that status uneditable. This is the honest answer to "read-only after the issue is closed" — but the scope is the issue, not the field. As a Community answer puts it, it "will stop all edits to the issue, not just that one field".

3. "Read-only on transition"

A popular phrasing, and the source of a common misunderstanding. Screens attached to a transition control which fields that transition asks for; leaving a field off a transition screen does not make it read-only anywhere else. What genuinely narrows editing to one group is the reverse trick: a transition from a status back to itself, carrying the field on its screen, guarded by a condition such as "user is in project role". This works only if the field is first removed from the Edit screen — otherwise everyone still edits it inline in the issue view; Atlassian's own knowledge base pairs the two steps. Done properly, everyone else has no route to the field and that role does. It has to be repeated per workflow, and Jira records the change in issue history without a reason for it.

4. A read-only custom field

Some fields are read-only by definition — fields an app owns and writes itself. Jira renders them without an edit control, so no user, script or rule can change them after the issue exists; the one gap is issue creation, where the REST API can still inject a value — a well-built app detects that and clears it. That is the strongest form of read-only in Jira Cloud, and it comes from the app that owns the field, not from configuration.

When the native routes are enough: if "read-only" really means "nobody touches it" or "only this role touches it", and Jira's issue history is record enough, the Edit screen or a role-conditioned transition does the job at no cost. Atlassian's own knowledge base is blunt about the gap they do not close: "Jira Cloud does not natively support field-level restrictions based on roles, groups, or transitions."

Read-only with a key

Most teams who ask for a read-only field do not want it frozen forever — budgets get revised and contracts get amended. They want it read-only by default, changeable only with someone's agreement, and they want to be able to show later who agreed.

FieldLock for Jira is a Forge app for exactly that case. It offers two modes, which promise different things:

 LockedGuarded
The fieldthe app's own field, which Jira itself renders read-only — always a numbera custom field you already have — a number or single-line text
An outside changerefused immediately, so a wrong value is never visible — except at issue creation, see limitsgoes through, then FieldLock restores the approved value — usually within a minute or two
Migrationvalues entered in the app, one issue at a time; no bulk importnone — the value already in the field becomes the starting point

In both modes the way through the lock is the same: anyone who can browse the project proposes a value with a reason, project admins or a project role you choose approve or reject it, and the app writes it. An optional four-eyes rule stops the author of a request approving their own request. Approvers can also set a value directly in the panel — that path is recorded in the log with their account, and the four-eyes rule does not apply to it. Every event goes into an append-only audit trail that exports as a readable document and JSON.

Limits, stated up front

Make a field read-only until someone approves

Free trial through the Atlassian Marketplace. Paid plans start at $10/month for up to 10 users.

Get FieldLock on the Atlassian Marketplace