More information about changeset status, lifecycle and publish process in EMT ATLAS
Changeset Status Transitions & Permissions
USERS WITH ROLES
Changeset Owner
(having roles: Creator, Admin, or Approver)
(having roles: Creator, Admin, or Approver)
Changeset Approver
(having roles: Approver or Admin)
(having roles: Approver or Admin)
Admin User
(having role: Admin)
(having role: Admin)
WIP
(Work In Progress)
SHARED
(Shared For Approval)
Shared with Changeset Approver
PUBLISHED
(Final)
ROLLED BACK
(Rolled Back)
REJECTED
(Changes Rejected)
Concurrent Edits and changeset Conflicts
EMT ATLAS supports concurrent editing of an asset by multiple users in their own changesets as illustrated below.
As a result when sharing or publishing a changeset, users may get a 400 Error response with tag_codes of asset revisions that have conflicts and need resolution from a client app.
Resolving Conflicts
Publish by Changeset Owner
1
Changeset ready for publish
➜
2
Conflicts Occur
Conflicts Occur
(Publish attempt fails)
(Publish attempt fails)
On conflict, the following fields are updated on the Changeset
- last_published_attempt_at
- last_published_attempt_by
- publish_failure_reason
➜
3
Changeset Status → WIP
Update Changeset Status: AUTHORIZED → WIP
Only Changeset owner can move from AUTHORIZED to WIP**
➜
4
Rebase Assets (Update Assets)
PATCH Bulk Asset Update (Rebase) (Changeset owner)
- Updates asset attributes
- Validations: Changeset status must be WIP or REJECTED; changeset must belong to current user
➜
5
Retry Share/Publish
Publish Changeset (Changeset Owner)
Conflicts Resolved
➜
6
PUBLISHED
PUBLISHED
(by Owner/Admin)
(by Owner/Admin)
Result:
* Admin can publish their changeset from WIP
**Admin must take ownership of changeset first if they are not the changeset owner
Taking changeset ownership
In case a changeset owner is unable to complete pending actions on their changeset, admin users are able to take ownership of that changeset.
1
Changeset Owner not available
Changeset is WIP, REJECTED or AUTHORISED
➜
2
Admin Calls Take Ownership Endpoint
Take Ownership (Actions):
- Create new Changeset 2 by Admin User (inherited_from_changeset = 1)
- Copy all pending assets from Changeset 1 to Changeset 2 (as new pending rows)
- Roll back Changeset 1 (update status to ROLLED BACK)
➜
3
Ownership Taken Successfully
Changeset 2
Status: WORK IN PROGRESS
(Owner: Admin User)
inherited_from_changeset: 1
Changeset 1
Status: ROLLED BACK
(Owner: Previous owner)
All its changes are preserved as rolled back revisions.