Changesets

More information about changeset status, lifecycle and publish process in EMT ATLAS

Changeset Status Transitions & Permissions

Changeset Status Transitions & Permissions

USERS WITH ROLES

🟢
Changeset Owner
(having roles: Creator, Admin, or Approver)
🟣
Changeset Approver
(having roles: Approver or Admin)
🛡️
Admin User
(having role: Admin)
WIP
(Work In Progress)
SHARED
(Shared For Approval)
Shared with Changeset Approver
AUTHORISED
(Approved)
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

How Admin/Creator Publishes a Changeset When Conflicts Occur
Publish by Changeset Owner
1
Changeset ready for publish
AUTHORIZED
Or WIP*
2
Conflicts Occur
Conflicts Occur
(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)
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.

Flow: Admin Takes Ownership and Publishes Changeset
1
Changeset Owner not available
Changeset is WIP, REJECTED or AUTHORISED
2
Admin Calls Take Ownership Endpoint
Take Ownership (Actions):
  1. Create new Changeset 2 by Admin User (inherited_from_changeset = 1)
  2. Copy all pending assets from Changeset 1 to Changeset 2 (as new pending rows)
  3. 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.