feat: custom fields per project
Text, number, date or option-list fields defined in the project settings (archived, never removed; their type is fixed once saved). Tickets hold them, edited in the side panel, listed under the title and filtered by option in the list view; also over GraphQL, REST (?field=ID:value) and MCP. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -2424,6 +2424,21 @@
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "field",
|
||||
"required": false,
|
||||
"in": "query",
|
||||
"description": "Custom values the tickets must hold, as FIELD:value. Repeat the parameter for several",
|
||||
"schema": {
|
||||
"example": [
|
||||
"BROWSER:Safari"
|
||||
],
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "sort",
|
||||
"required": false,
|
||||
@@ -10460,6 +10475,54 @@
|
||||
"archived"
|
||||
]
|
||||
},
|
||||
"CustomFieldType": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"TEXT",
|
||||
"NUMBER",
|
||||
"DATE",
|
||||
"SELECT"
|
||||
],
|
||||
"description": "DATE values are YYYY-MM-DD"
|
||||
},
|
||||
"CustomFieldDefinitionDto": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"example": "BROWSER"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"example": "Navegador"
|
||||
},
|
||||
"type": {
|
||||
"description": "DATE values are YYYY-MM-DD",
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "#/components/schemas/CustomFieldType"
|
||||
}
|
||||
]
|
||||
},
|
||||
"options": {
|
||||
"description": "The choices of a SELECT field",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"archived": {
|
||||
"type": "boolean"
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"id",
|
||||
"name",
|
||||
"type",
|
||||
"options",
|
||||
"archived"
|
||||
]
|
||||
},
|
||||
"ProjectSettingsDto": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
@@ -10487,13 +10550,20 @@
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/AreaOptionDto"
|
||||
}
|
||||
},
|
||||
"customFields": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/CustomFieldDefinitionDto"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"statuses",
|
||||
"transitions",
|
||||
"issueTypes",
|
||||
"areas"
|
||||
"areas",
|
||||
"customFields"
|
||||
]
|
||||
},
|
||||
"ProjectDto": {
|
||||
@@ -10799,6 +10869,50 @@
|
||||
"name"
|
||||
]
|
||||
},
|
||||
"CustomFieldDefinitionBodyDto": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"id": {
|
||||
"type": "string",
|
||||
"example": "BROWSER"
|
||||
},
|
||||
"name": {
|
||||
"type": "string",
|
||||
"example": "Navegador",
|
||||
"maxLength": 40
|
||||
},
|
||||
"type": {
|
||||
"description": "Cannot change once the field exists. DATE: YYYY-MM-DD",
|
||||
"allOf": [
|
||||
{
|
||||
"$ref": "#/components/schemas/CustomFieldType"
|
||||
}
|
||||
]
|
||||
},
|
||||
"options": {
|
||||
"maxItems": 50,
|
||||
"example": [
|
||||
"Chrome",
|
||||
"Safari",
|
||||
"Firefox"
|
||||
],
|
||||
"description": "The choices of a SELECT field",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"archived": {
|
||||
"type": "boolean",
|
||||
"default": false
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
"id",
|
||||
"name",
|
||||
"type"
|
||||
]
|
||||
},
|
||||
"ProjectSettingsBodyDto": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
@@ -10826,6 +10940,13 @@
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/AreaOptionBodyDto"
|
||||
}
|
||||
},
|
||||
"customFields": {
|
||||
"description": "Absent: unchanged. Fields cannot be removed: archive them.",
|
||||
"type": "array",
|
||||
"items": {
|
||||
"$ref": "#/components/schemas/CustomFieldDefinitionBodyDto"
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [
|
||||
@@ -11216,6 +11337,16 @@
|
||||
"nullable": true,
|
||||
"format": "date"
|
||||
},
|
||||
"customFields": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string"
|
||||
},
|
||||
"example": {
|
||||
"BROWSER": "Safari"
|
||||
},
|
||||
"description": "Custom field id → value (only those set)"
|
||||
},
|
||||
"links": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
@@ -11321,6 +11452,7 @@
|
||||
"storyPoints",
|
||||
"startDate",
|
||||
"dueDate",
|
||||
"customFields",
|
||||
"links",
|
||||
"attachments",
|
||||
"watchers",
|
||||
@@ -11823,6 +11955,17 @@
|
||||
"nullable": true,
|
||||
"format": "date"
|
||||
},
|
||||
"customFields": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
},
|
||||
"example": {
|
||||
"BROWSER": "Safari"
|
||||
},
|
||||
"description": "Custom field id → value. Only the fields to change; null or '' clears one"
|
||||
},
|
||||
"type": {
|
||||
"type": "string",
|
||||
"example": "BUG",
|
||||
@@ -11950,6 +12093,17 @@
|
||||
"nullable": true,
|
||||
"format": "date"
|
||||
},
|
||||
"customFields": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"type": "string",
|
||||
"nullable": true
|
||||
},
|
||||
"example": {
|
||||
"BROWSER": "Safari"
|
||||
},
|
||||
"description": "Custom field id → value. Only the fields to change; null or '' clears one"
|
||||
},
|
||||
"type": {
|
||||
"type": "string",
|
||||
"example": "FEATURE",
|
||||
|
||||
Reference in New Issue
Block a user