It seems that in order to set a field through the REST API the field must appear on the screen for creating an issue. Otherwise you get this type of error:
Field 'fixVersions' cannot be set. It is not on the appropriate screen, or unknown.
It seems strange to me that the API should be limited by the UI since often the purpose of using the API is to perform things that the UI is not capable of.
Is it possible to access a field without it being visible to users? For example if I want to have a custom field that is only accessible through the API but hidden from users (for cosmetic rather than security reasons), is it possible to achieve this?
No, REST respects the settings in the UI.
The purpose of the REST API is to allow you to do things inside the application - it would be a nightmare to say to users "hey, here's a UI, but if you use REST, you can bypass all the configuration and settings and do what the heck you like". You might as well throw away all your control and tracking, along with the web interface. You really do need REST to respect the UI.
Six years later and Atlassian Support is still linking to this dismissive oversimplification. We don't want to hide information or "bypass configuration", we want to prevent users from overwriting a field that may have been changed programmatically while they were using a Screen.
Connect with like-minded Atlassian users at free events near you!Find an event
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no Community Events near you at the moment.Host an event