Updating Resources#
The Risk & Control Matrix controls and risks are read-only. Issues, action tasks, and assurance projects are updatable as described below; none of them can be created or deleted through the API.
Assurance projects cannot be renamed through the API, but two things about a project can change, each using the update style that fits it:
The project’s scope documentation (its
scopingRationaleand the set of attached Workiva files) is updated withPATCH /assuranceProjects/{id}, using a JSON Patch document (RFC 6902, media typeapplication/json-patch+json): an array of operations. This API supportsreplaceon/scopingRationaleand/scopingFiles; include an operation only for the field you want to change./scopingFilesis replace-set (the array you supply becomes the complete attached set, so omitting a file detaches it, and[]detaches all).The controls in scope are changed with three behavioral
POSToperations, because putting a control in or out of scope is an action with downstream side effects (it creates or retires the control’s workpapers), not a simple field edit:POST /assuranceProjects/{id}/scopedControls/addition— add controls by control id.POST /assuranceProjects/{id}/scopedControls/removal— remove scope entries, with a rationale.POST /assuranceProjects/{id}/scopedControls/restoration— restore removed entries, with a rationale.
Remediation issues and action tasks can also be updated. Both use the same JSON Patch
document (RFC 6902, media type application/json-patch+json), an array of operations. Only
replace is supported. Include one operation per field you want to change; fields without an
operation are left unchanged. Each endpoint accepts only the paths below.
Issues are updated with
PATCH /issues/{id}, with at most 100 operations:Path
Operations
Value type
/namereplacestring/descriptionreplacestring/rootCausereplacestring,null/supplementalInformationreplacestring,null/severityreplacestring:minor,moderate,high,unassigned/soxDeficiencyreplacestring:notSet,deficiency,materialWeakness,significantDeficiency/auditTeamOwnerreplaceuser id
string/businessOwnerreplaceuser id
string,null/collaboratorsreplacearray of user id
string, at most 10/controlsreplacearray of control id
string, at most 5/processesreplacearray of process id
string, at most 5/risksreplacearray of risk id
string, at most 5/targetRemediationDatereplacedate
string(YYYY-MM-DD),null/customFields/{schemaId}replaceobject with exactly one of
stringValue,dateValue,enumValue, orenumValues;nullA
nullvalue clears the paths that listnull; the other paths do not accept it. Array values replace the whole list. A custom field is patched by its schemaidrather than by replacing the/customFieldsarray, with a value that matches the field’s type; anullvalue clears it, and other custom fields are left unchanged. An issue’sstatusand resolution are read-only, and patching/statusreturns400.Action tasks are updated with
PATCH /issues/{issueId}/actionTasks/{id}, with at most 3 operations:Path
Operations
Value type
/namereplacenon-empty
string/descriptionreplacenon-empty
string/dueDatereplaceRFC 3339 date-time
stringnullis not accepted. The task is due at the end of the/dueDatedate (UTC). A due date in the past is allowed, so an overdue date can be synced; the task then has theoverduestatus. The assignee and status are read-only, and patching them returns400. An action task that isimplementedorcancelled, or whoseassigneeStatusiscompletedorcancelled, can no longer be changed and returns409.An action task’s progress is changed with two behavioral
POSToperations, because each is an action with its own rules and side effects rather than a field edit:POST /issues/{issueId}/actionTasks/{id}/externalSubmission— mark the task sent because the work is tracked in an external system. The task moves toinProgress(or staysoverdueif its due date has passed) and itsassigneeStatusbecomesinProgress. Workiva does not create a Task Portal task, send the assignee a notification or email, or allow reminders for the task. Retrying is safe: a task already sent this way is returned unchanged. It returns409if the task was already sent from Workiva, or isimplementedorcancelled.POST /issues/{issueId}/actionTasks/{id}/implementation— mark the task implemented. It is allowed fromnotSent,inProgress, oroverdue; a task that is alreadyimplementedis returned unchanged, and acancelledtask returns409.
All of these require the grc:write scope; everything else requires only grc:read.
Note
Because this is a preview, new operations can be added without a major version bump — see Versioning.