In the left navigation bar click on REST API Explorer.
You now see a list of all available endpoints and you can click on any endpoint to expand its details. If you want to perform some requests you first need to enter your basic auth credentials.
A dialog opens and you can enter your Jira username and password. Finally click on Authorize.
Via the Try it out button you can now perform a REST Request against your Jira instance.
If the Endpoint has parameters such as URL parameters or a request body you can specify them before you click on Execute. The request will now be executed and when scrolling down a little bit you will see the HTTP response.
If using Jira Data Center each request sent by the REST API Explorer will randomly use another cluster node which you can see in the response headers x-anodeid. If you are receiving a HTTP 404 as response this is most likely caused by an defunct cluster setup. For example you are on node-1 and the HTTP API response comes from node-2 where for some reason the app is not installed.
The following demo screeencast will show you the full process described above.
Rest API Endpoint Documentation
This is the static documentation for the Customfield Editor for Jira's REST-API.
The baseUrl of the REST API might be one of the following URLs on your instance of Jira:
List all customfields [c1.8.0] /admin/customfields
List all available customfields. Not all of them will be editable with the Customfield Editor for Jira. See User Guide for supported FieldTypes. You need to be administrator or system administrator to use this endpoint.
Get global Permissions for Customfield [c1.8.0] /admin/customfields/{customFieldId}
You can get permissions of the specified customfield. Will return usernames and groupnames that have global permissions. You need to be administrator or system administrator to use this endpoint.
Set global Permissions on Customfield [c1.8.0] /admin/customfields/{customFieldId}
You can submit usernames or groupnames to give global permissions on the specified customfield. Notice: Always provide the full list of usernames and groupnames! You cannot just add a username, what you submit will overwrite the previous values of usernames and groupnames fields. You need to be administrator or system administrator to use this endpoint.
Note that the containers will only show up when the corresponding expand parameter is set. Also note that if you have a big Jira Installation with many customFields, projects and issueTypes the usage of expand parameter can produce high loads on the Jira instance. When the expand parameter is not set the response will look like this:
Get all context permissions of Customfield [c1.8.0] /admin/customfields/{customFieldId}/contexts/permissions
You can get context permissions of the specified customfield. It will return usernames and groupnames for every context. Notice: If a user has global permissions on a field all context permissions will be overruled. You need to be administrator or system administrator to use this endpoint.
Set context permissions on Customfield [c1.8.0] /admin/customfields/{customFieldId}/contexts/permissions
You can submit usernames or groupnames to give permissions on the specified customfield contexts. Notice: If a user has global permissions on a field all context specific permissions will be overruled.Notice: Always provide the full list with permissions for all contexts otherwise permissions might get overwritten! You need to be administrator or system administrator to use this endpoint.
Lists all customfields the user has permission for [n1.2.0] /user/customfields
List all customfields accessible by the authenticated user. Administrator needs to grant the user permissions on customfields via admin-endpoints first. If the user has no permissions on any customfield the list will be empty. Even jira-administrators need explicit customfield permissions for the user-endpoints.
Note that the containers will only show up when the corresponding expand parameter is set. Also note that if you have a big Jira Installation with many customFields, projects and issueTypes the usage of expand parameter can produce high loads on the Jira instance. When the expand parameter is not set the response will look like this:
Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
1.5.0 - changed: Added the expand Query-Parameter for projects and issueTypes [CEP-31].
1.2.1 - changed: The contexts returned are filtered by context permissions now. If there are no context permissions set, you will still see all contexts.
Lists all options of the customfield for default context [c1.8.0] /user/customfields/{customFieldId}/contexts/default/options
List all options of a customfield for the default context. Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
Creates a new option for the customfield in default context [c1.8.0] /user/customfields/{customFieldId}/contexts/default/options
Creates a new option for the customfield in the default context. When creating a new option use the following JSON and do not set sequence and id since they are auto-generated on create.
{
"optionvalue": "my option value"
}
Option values must be unique. If you create an option with a value that already exists you will recieve a HTTP 400 Validation Error.
{
"statusCode": 400,
"subCode": 400000,
"message": "validation errors",
"errors": [
{
"name": "optionvalue",
"message": "This option value does already exist. Option values need to be unique."
}
]
}
Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
1.2.0 - changed: URL changed from /customfieldoption/{customFieldId}; Request and Response Parameters/Schema mostly unchanged; childOptions removed; sequence is ignored - new options are always placed at the end of the list.
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
Updates an existing option for the customfield for default context [c1.8.0] /user/customfields/{customFieldId}/contexts/default/options/{optionId}
Updates the properties of an existing option for the customfield in default context. When updating the value of an existing option try to use the following JSON:
{
"optionvalue": "my option value"
}
When you want to disable an existing option use this JSON:
{
"disabled": true
}
You should not tamper with sequence, because that can mess up the internal order of all options. If you made some mistakes with sequence then simply use the /sort endpoint. This will repair the internal sequence. Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
Deletes an option of the customfield in default context [c1.8.0] /user/customfields/{customFieldId}/contexts/default/options/{optionId}
Deletes an option of the customfield by its id in default context. Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
Moves the option for the customfield in default context [c1.8.0] /user/customfields/{customFieldId}/contexts/default/options/{optionId}/move
Change order for existing option of customfield in default context. Example: You have four options with IDs 10, 20, 30 and 40 which exist in exactly this order
If you now want to place option with ID 20 between 30 and 40, then you need to send:
Request-URL: POST /user/customfields/123/contexts/default/options/20/move
Request-Body: { "after": "30" }
There is only one special case for moving an option to the start of the list. If you want to move option with ID 40 at the start you need to send:
Request-URL: POST /user/customfields/123/contexts/default/options/40/move
Request-Body: { "position": "First" }
Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
RestfulTableMoveModel is used for drag-and-drop sorting options using the AUI Restfultable. It is advised to not use it. Use the SORT Endpoint instead or you might break the internal order sequence.
After must contain the optionId to move the option after. In form of "/foo/bar/{optionid}" which is provided that way by AUI Restfultable.You can provide just the optionId too.
position
string
Special Case to move an option to the beginning of the option List. Specify position="First". (Notice: if after and position are defined together, after is ignored)
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
Get the default value for the customfield in default context [c1.8.0] /user/customfields/{customFieldId}/contexts/default/options/default
Get the default value for the customfield in default context. The default option is different depending on the field type. For type singleSelect and radioButtons the default value consists of a single option. JSON:
If no default value is set the response body is JSON:
{ }
Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
CustomFieldOptionModel represents all properties of an option.The id, value, order (sequence) and disabled/enabled state.
object
Property
Type
Description
optionvalue
string
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
defaultChildOption
object
CustomFieldOptionModel represents all properties of an option.The id, value, order (sequence) and disabled/enabled state.
object
Property
Type
Description
optionvalue
string
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
defaultOptions
array
The IDs and names of the options as default values. (null for fieldtypes other than multiselect or multicheckboxes)
array ofobject
Property
Type
Description
optionvalue
string
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
Set the default value for the customfield in default context [c1.8.0] /user/customfields/{customFieldId}/contexts/default/options/default
Set the default value for the customfield in default context. The default option is different depending on the field type. For type singleSelect and radioButtons the default value consists of a single option. To set the default value use JSON:
{
"optionId": 123
}
For type cascadingSelect the default value consists of a parentOption and a childOption. To set the default value use JSON:
{
"optionId": 123,
"childOptionId": 567
}
For type multiSelect and multiCheckboxes the default value consists of a parentOption and a childOption. To set the default value use JSON:
{
"optionIds": [ 12, 34 ]
}
Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
CustomFieldOptionModel represents all properties of an option.The id, value, order (sequence) and disabled/enabled state.
object
Property
Type
Description
optionvalue
string
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
defaultChildOption
object
CustomFieldOptionModel represents all properties of an option.The id, value, order (sequence) and disabled/enabled state.
object
Property
Type
Description
optionvalue
string
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
defaultOptions
array
The IDs and names of the options as default values. (null for fieldtypes other than multiselect or multicheckboxes)
array ofobject
Property
Type
Description
optionvalue
string
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
Delete the default value for the customfield in default context [c1.8.0] /user/customfields/{customFieldId}/contexts/default/options/default
Delete the default value for the customfield in default context. Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
Sorts the options for the customfield in default context [c1.8.0] /user/customfields/{customFieldId}/contexts/default/options/sort
Sorts the options alphabetically for the customfield in default context depending on the specified locale. Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
SortModel specifies in which way to sort the options of a customfield.You can sort ascending or descending. The sorting will be locale dependant, so you need to specify a locale like en-US. You can specify an optional collator strength.
Lists all options of the customfield for specific context [c1.8.0] /user/customfields/{customFieldId}/contexts/{contextId}/options
List all options of a customfield for specific context. Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
Creates a new option for the customfield in specific context [c1.8.0] /user/customfields/{customFieldId}/contexts/{contextId}/options
Creates a new option for the customfield in a specific context. When creating a new option use the following JSON and do not set sequence and id since they are auto-generated on create.
{
"optionvalue": "my option value"
}
Option values must be unique. If you create an option with a value that already exists you will recieve a HTTP 400 Validation Error.
{
"statusCode": 400,
"subCode": 400000,
"message": "validation errors",
"errors": [
{
"name": "optionvalue",
"message": "This option value does already exist. Option values need to be unique."
}
]
}
Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
Updates an existing option for the customfield for specific context [c1.8.0] /user/customfields/{customFieldId}/contexts/{contextId}/options/{optionId}
Updates the properties of an existing option for the customfield in a specific context. When updating the value of an existing option try to use the following JSON:
{
"optionvalue": "my option value"
}
When you want to disable an existing option use this JSON:
{
"disabled": true
}
You should not tamper with sequence, because that can mess up the internal order of all options. If you made some mistakes with sequence then simply use the /sort endpoint. This will repair the internal sequence. Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
Deletes an option of the customfield in specific context [c1.8.0] /user/customfields/{customFieldId}/contexts/{contextId}/options/{optionId}
Deletes an option of the customfield by its id in specific context. Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
Moves the option for the customfield in specific context [c1.8.0] /user/customfields/{customFieldId}/contexts/{contextId}/options/{optionId}/move
Change order for existing option of customfield in specific context. Example: You have four options with IDs 10, 20, 30 and 40 which exist in exactly this order
If you now want to place option with ID 20 between 30 and 40, then you need to send:
Request-URL: POST /user/customfields/123/contexts/{contextId}/options/20/move
Request-Body: { "after": "30" }
There is only one special case for moving an option to the start of the list. If you want to move option with ID 40 at the start you need to send:
Request-URL: POST /user/customfields/123/contexts/{contextId}/options/40/move
Request-Body: { "position": "First" }
Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
RestfulTableMoveModel is used for drag-and-drop sorting options using the AUI Restfultable. It is advised to not use it. Use the SORT Endpoint instead or you might break the internal order sequence.
After must contain the optionId to move the option after. In form of "/foo/bar/{optionid}" which is provided that way by AUI Restfultable.You can provide just the optionId too.
position
string
Special Case to move an option to the beginning of the option List. Specify position="First". (Notice: if after and position are defined together, after is ignored)
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
Get the default value for the customfield in specific context [c1.8.0] /user/customfields/{customFieldId}/contexts/{contextId}/options/default
Get the default value for the customfield in specific context. The default option is different depending on the field type. For type singleSelect and radioButtons the default value consists of a single option. JSON:
If no default value is set the response body is JSON:
{ }
Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
CustomFieldOptionModel represents all properties of an option.The id, value, order (sequence) and disabled/enabled state.
object
Property
Type
Description
optionvalue
string
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
defaultChildOption
object
CustomFieldOptionModel represents all properties of an option.The id, value, order (sequence) and disabled/enabled state.
object
Property
Type
Description
optionvalue
string
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
defaultOptions
array
The IDs and names of the options as default values. (null for fieldtypes other than multiselect or multicheckboxes)
array ofobject
Property
Type
Description
optionvalue
string
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
Set the default value for the customfield in specific context [c1.8.0] /user/customfields/{customFieldId}/contexts/{contextId}/options/default
Set the default value for the customfield in specific context. The default option is different depending on the field type. For type singleSelect and radioButtons the default value consists of a single option. To set the default value use JSON:
{
"optionId": 123
}
For type cascadingSelect the default value consists of a parentOption and a childOption. To set the default value use JSON:
{
"optionId": 123,
"childOptionId": 567
}
For type multiSelect and multiCheckboxes the default value consists of a parentOption and a childOption. To set the default value use JSON:
{
"optionIds": [ 12, 34 ]
}
Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
CustomFieldOptionModel represents all properties of an option.The id, value, order (sequence) and disabled/enabled state.
object
Property
Type
Description
optionvalue
string
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
defaultChildOption
object
CustomFieldOptionModel represents all properties of an option.The id, value, order (sequence) and disabled/enabled state.
object
Property
Type
Description
optionvalue
string
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
defaultOptions
array
The IDs and names of the options as default values. (null for fieldtypes other than multiselect or multicheckboxes)
array ofobject
Property
Type
Description
optionvalue
string
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
Delete the default value for the customfield in specific context [c1.8.0] /user/customfields/{customFieldId}/contexts/{contextId}/options/default
Delete the default value for the customfield in specific context. Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
Sorts the options for the customfield in specific context [c1.8.0] /user/customfields/{customFieldId}/contexts/{contextId}/options/sort
Sorts the options alphabetically for the customfield in specific context depending on the specified locale. Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
SortModel specifies in which way to sort the options of a customfield.You can sort ascending or descending. The sorting will be locale dependant, so you need to specify a locale like en-US. You can specify an optional collator strength.
Lists child-options of parent-option for default context [c1.8.0] /user/customfields/{customFieldId}/contexts/default/options/{optionId}/childoptions
This feature is only available for the customfields with type Cascading Select. Lists child-options of parent-option for default context. Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
Creates a new child-option of a parent-option in default context [c1.8.0] /user/customfields/{customFieldId}/contexts/default/options/{optionId}/childoptions
This feature is only available for the customfields with type Cascading Select. Creates a new child-option of a parent-option for the customfield in default context. When creating a new option use the following JSON and do not set sequence and id since they are auto-generated on create.
{
"optionvalue": "my option value"
}
Option values must be unique. If you create an option with a value that already exists you will recieve a HTTP 400 Validation Error.
{
"statusCode": 400,
"subCode": 400000,
"message": "validation errors",
"errors": [
{
"name": "optionvalue",
"message": "This option value does already exist. Option values need to be unique."
}
]
}
Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
Updates an existing child-option of a parent-option in default context [c1.8.0] /user/customfields/{customFieldId}/contexts/default/options/{optionId}/childoptions/{childOptionId}
This feature is only available for the customfields with type Cascading Select. Updates the value of an existing child-option of a parent-option for the customfield in default context. When updating the value of an existing option try to use the following JSON:
{
"optionvalue": "my option value"
}
When you want to disable an existing option use this JSON:
{
"disabled": true
}
You should not tamper with sequence, because that can mess up the internal order of all options. If you made some mistakes with sequence then simply use the /sort endpoint. This will repair the internal sequence. Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
Deletes a child-option of a parent-option in default context [c1.8.0] /user/customfields/{customFieldId}/contexts/default/options/{optionId}/childoptions/{childOptionId}
This feature is only available for the customfields with type Cascading Select. Deletes a child-option of a parent-option of the customfield by its id in default context. Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
Moves the child-option of the parent-option in default context [c1.8.0] /user/customfields/{customFieldId}/contexts/default/options/{optionId}/childoptions/{childOptionId}/move
This feature is only available for the customfields with type Cascading Select. Change order for existing child-option of parent-option of customfield in default context. Example: You have four options with IDs 10, 20, 30 and 40 which exist in exactly this order
If you now want to place option with ID 20 between 30 and 40, then you need to send:
Request-URL: POST /user/customfields/123/contexts/default/options/{parentOptionId}/childoptions/20/move
Request-Body: { "after": "30" }
There is only one special case for moving an option to the start of the list. If you want to move option with ID 40 at the start you need to send:
Request-URL: POST /user/customfields/123/contexts/default/options/{parentOptionId}/childoptions/40/move
Request-Body: { "position": "First" }
Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
RestfulTableMoveModel is used for drag-and-drop sorting options using the AUI Restfultable. It is advised to not use it. Use the SORT Endpoint instead or you might break the internal order sequence.
After must contain the optionId to move the option after. In form of "/foo/bar/{optionid}" which is provided that way by AUI Restfultable.You can provide just the optionId too.
position
string
Special Case to move an option to the beginning of the option List. Specify position="First". (Notice: if after and position are defined together, after is ignored)
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
Sorts the child-options of a parent-option for the customfield in default context [c1.8.0] /user/customfields/{customFieldId}/contexts/default/options/{optionId}/childoptions/sort
This feature is only available for the customfields with type Cascading Select. Sorts the child-options of a parent-option for the customfield in default context. Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
SortModel specifies in which way to sort the options of a customfield.You can sort ascending or descending. The sorting will be locale dependant, so you need to specify a locale like en-US. You can specify an optional collator strength.
Lists child-options of parent-option for specific context [c1.8.0] /user/customfields/{customFieldId}/contexts/{contextId}/options/{optionId}/childoptions
This feature is only available for the customfields with type Cascading Select. Lists child-options of parent-option for specific context. Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
Creates a new child-option of a parent-option in specific context [c1.8.0] /user/customfields/{customFieldId}/contexts/{contextId}/options/{optionId}/childoptions
This feature is only available for the customfields with type Cascading Select. Creates a new child-option of a parent-option for the customfield in specific context. When creating a new option use the following JSON and do not set sequence and id since they are auto-generated on create.
{
"optionvalue": "my option value"
}
Option values must be unique. If you create an option with a value that already exists you will recieve a HTTP 400 Validation Error.
{
"statusCode": 400,
"subCode": 400000,
"message": "validation errors",
"errors": [
{
"name": "optionvalue",
"message": "This option value does already exist. Option values need to be unique."
}
]
}
Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
Updates an existing child-option of a parent-option for specific context [c1.8.0] /user/customfields/{customFieldId}/contexts/{contextId}/options/{optionId}/childoptions/{childOptionId}
This feature is only available for the customfields with type Cascading Select. Updates the value of an existing child-option of a parent-option for the customfield. When updating the value of an existing option try to use the following JSON:
{
"optionvalue": "my option value"
}
When you want to disable an existing option use this JSON:
{
"disabled": true
}
You should not tamper with sequence, because that can mess up the internal order of all options. If you made some mistakes with sequence then simply use the /sort endpoint. This will repair the internal sequence. Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
Deletes a child-option of a parent-option in specific context [c1.8.0] /user/customfields/{customFieldId}/contexts/{contextId}/options/{optionId}/childoptions/{childOptionId}
This feature is only available for the customfields with type Cascading Select. Deletes a child-option of a parent-option of the customfield by its id in specific context. Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
Moves the child-option of the parent-option in specific context [c1.8.0] /user/customfields/{customFieldId}/contexts/{contextId}/options/{optionId}/childoptions/{childOptionId}/move
This feature is only available for the customfields with type Cascading Select. Change order for existing child-option of parent-option of customfield in specific context. Example: You have four options with IDs 10, 20, 30 and 40 which exist in exactly this order
If you now want to place option with ID 20 between 30 and 40, then you need to send:
Request-URL: POST /user/customfields/123/contexts/{contextId}/options/{parentOptionId}/childoptions/20/move
Request-Body: { "after": "30" }
There is only one special case for moving an option to the start of the list. If you want to move option with ID 40 at the start you need to send:
Request-URL: POST /user/customfields/123/contexts/{contextId}/options/{parentOptionId}/childoptions/40/move
Request-Body: { "position": "First" }
Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
RestfulTableMoveModel is used for drag-and-drop sorting options using the AUI Restfultable. It is advised to not use it. Use the SORT Endpoint instead or you might break the internal order sequence.
After must contain the optionId to move the option after. In form of "/foo/bar/{optionid}" which is provided that way by AUI Restfultable.You can provide just the optionId too.
position
string
Special Case to move an option to the beginning of the option List. Specify position="First". (Notice: if after and position are defined together, after is ignored)
The actual optionValue which is displayed to the user who uses the customField.
id
integer
The unique optionId.
sequence
integer
The OPTIONAL internal sequence. It is best to leave this value blank and let the plugin choose the right sequence. You can damage the sort-order by setting wrong values here. Use the SORT Endpoint instead, if you want to sort options.
disabled
boolean
The OPTIONAL disabled state. Defaults to false. If set to true, option is disabled and will not be displayed to the user when using the field in an Jira issue.
Sorts the child-options of a parent-option for the customfield in specific context [c1.8.0] /user/customfields/{customFieldId}/contexts/{contextId}/options/{optionId}/childoptions/sort
This feature is only available for the customfields with type Cascading Select. Sorts the child-options of a parent-option for the customfield in specific context. Note that the user needs permissions granted by an administrator via admin-endpoints first in order to not get a 'permission denied' error via HTTP 403:
{
"statusCode": 403,
"subCode": 403001,
"message": "FieldPermission Denied - you do not have sufficient rights for this operation."
}
SortModel specifies in which way to sort the options of a customfield.You can sort ascending or descending. The sorting will be locale dependant, so you need to specify a locale like en-US. You can specify an optional collator strength.
The REST API changes from time to time. We try to keep these changes as minimal as possible, but at some point technical debt needs to be dealt with. See in the version sections below which changes made to the API on the respective app version:
v1.9.0 to v2.0.0
No breaking changes.
breaking:
-
non-breaking:
[CEP-71] REST API new incremental Permission update Endpoint (HTTP PATCH)
[CEP-69] REST API new combined get customfield, context and defaultOption Endpoint (HTTP GET)
[CEP-72] REST API old full Permission update Endpoint (HTTP PUT) now enforces users must exist (returns validation errors if not).
[CEP-68] REST API user and admin customfield lists: Introducing paginable, filterable and orderable results. (backwards compatible but with deprecations)
deprecations:
GET /user/customfields and /admin/customfields for old un-paginated results are deprecated and will be removed in future releases. See [CEP-68].
Summary: No structural changes to any endpoints. Release v2.0.0 brings all the performance optimizations needed for Data Center compatibility. Only deprecations for non-paginated customfield list endpoints (see above).
[CEP-57] REST API: Improve Error Handling for ChildOption Endpoints of Cascading Select fields.
non-breaking:
[CEP-58] REST API: Change of existing option should work even if only case is changed
Summary: No structural changes to any endpoints. All Endpoints still have the same URLs and same JSON Schemas for Request and Response. All Endpoints now use HTTP 400 for most of the errors. HTTP 406 removed. HTTP 412 only used for version compatibility errors. HTTP 500 only used for unexpected errors.
v1.5.0 to v1.7.1
No breaking changes.
v1.4.0 to v1.5.0
Breaking changes!
breaking:
[CEP-36] Rest-API: All Endpoints will return HTTP 403 instead of HTTP 500 on non existing custom field id.
non-breaking:
[CEP-31] Rest-API: Provide associated projects and issue types info for /*/customfields/{id}/contexts Endpoint.
v1.3.0 to v1.4.0
No breaking changes.
v1.2.3 to v1.3.0
No breaking changes.
breaking:
-
non-breaking:
[CEP-INT-8] base url is now /1/ not /1.2/ anymore. But will be backwards compatible. Please use /rest/jiracustomfieldeditorplugin/1/* as base URL now.
[CEP-INT-8] removed the "/1.1/ Compatibility Mode" completely. Please use /rest/jiracustomfieldeditorplugin/1/* as base URL now.
[CEP-12] added /extended Endpoints for admin context permissions that display users fullname in userlists.
v1.2.2 to v1.2.3
No breaking changes.
v1.2.1 to v1.2.2
No breaking changes.
v1.2.0 to v1.2.1
You don't really need to do anything. Everything should work as before since it is just a bugfixing release which also brings the new context security feature. See the administrator guide for more details.
v1.0.0/1.1.0 to v1.2.0
You are advised to migrate to the new v1.2 URLs but you can use the v1.1 compatibility mode until you fully migrated. Here are the changes to the API from v1.1 to v1.2:
new baseUrl (with version /1.2/)
the URL pattern changed for all endpoints. See the the above REST-API-Endpoint-Documentation.
CustomFieldId is now Long(1234) not String(customfield_1234) anymore.
childOptions are removed from GET Options Resource response. Use separate Request on GET childOptions Resource now.
XML Support is removed completely. Use JSON as body-payload instead.
Error Responses are a little different and there are more distinct Response codes. See the the above REST-API-Endpoint-Documentation for all details.
Added Support for Field Contexts (with contextIDs or defaultContext).
Added alphabetical Sorting Endpoint for Options and childOptions.
Added Setting of default Value Endpoint.
Added a REST API Explorer on URL http://server:port/jira/plugins/servlet/customfieldeditorplugin/restapi/. You can trigger API Calls to the API directly in the Browser
Added admin Endpoints to set permissions and list customfields (for jira-administrator only)
CORS (Cross-Origin Resource Sharing)
CORS is not provided by the app itself. You need to configure CORS to your needs in the Webserver (Nginx or Apache Webserver) that sits in front of Jira.
Note: codeclou does not recommend you to configure CORS in a specific way. You should consult a specalist to configure CORS to your needs. The config below is provided without any warranty
<VirtualHost *:80>ServerName api-proxy.codeclou.io
## SSL => You should use SSL in production#SSLEngine on#SSLCertificateKeyFile /etc/ssl.key/example.com.key#SSLCertificateFile /etc/ssl.crt/example.com.crt## CORS HeaderHeader always set Access-Control-Allow-Origin "*"Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token"## Handle HTTP Options Preflight Request always with 200RewriteEngineOnRewriteCond%{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=200,L]## Proxy CEP REST Uris to Jira Server<LocationMatch "/rest/jiracustomfieldeditorplugin/1">ProxyPass http://jira-server:8080/rest/jiracustomfieldeditorplugin/1 disablereuse=OnProxyPassReverse http:///jira-server:8080/rest/jiracustomfieldeditorplugin/1
</LocationMatch></VirtualHost>
Use this demo config for NGINX v1+ to handle HTTP Options Preflight Requests and set correct CORS headers. Note that you still should abide Integrating Jira with Nginx.
nginx.conf
server {
listen api-proxy.codeclou.io:80;
server_name api-proxy.codeclou.io;
## SSL => You should use SSL in production#ssl_certificate www.example.com.crt;#ssl_certificate_key www.example.com.key;#ssl_protocols TLSv1 TLSv1.1 TLSv1.2;#ssl_ciphers HIGH:!aNULL:!MD5;location /rest/jiracustomfieldeditorplugin/1 {
## CORS Headeradd_header'Access-Control-Allow-Origin''*' always;
add_header'Access-Control-Allow-Methods''GET, POST, PUT, DELETE, OPTIONS' always;
add_header'Access-Control-Allow-Headers''x-requested-with, Content-Type, origin, authorization, accept, client-security-token' always;
## Handle HTTP Options Preflight Request always with 200if ($request_method = 'OPTIONS') {
return200;
}
## Proxy CEP REST Uris to Jira Serverproxy_pass http://jira-server:8080/rest/jiracustomfieldeditorplugin/1;
}
}
Now you can test your CORS config. The HTTP Options Preflight Request should have the following CORS Headers: