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 a count of conflicted asset revisions that need resolution from the api client/caller side.


Resolving Conflicts

Publish/Share by Changeset Owner — Workflow
Publish/Share by Changeset Owner
1Changeset ready for publish/share
AUTHORIZED(in case of publishing)
Or WIP*(in case of publishing or sharing)
2Conflicts Occur
Conflicts Occur
(Publish/Share attempt fails)
On conflict, the following fields are updated on the Changeset
  • last_published_attempt_at / last_shared_attempt_at
  • last_published_attempt_by / last_shared_attempt_by
  • publish_failure_reason / share_failure_reason
3Rebase Asset (Individual)
Rebase Asset (Changeset owner)
  • Each asset is rebased individually — no bulk endpoint is called
  • When user proceeds to rebase an asset, call endpoint to get that asset's conflicting attributes
If conflicting attributes list is EMPTY
Keep Mine changes Keep Latest / Revert changes Auto Merge changes
Keep Latest changes removes your version from the changeset
If conflicting attributes list is NOT EMPTY
Edit asset and Keep Mine changes Keep Latest / Revert Changes
If Edit / Auto Merge is chosen and the associated changeset status is AUTHORIZED, it is automatically converted to WIP — no manual status change is needed
4Retry Share/Publish
Publish/Share Changeset (Changeset Owner)
Conflicts Resolved
5PUBLISHED/SHARED
PUBLISHED/SHARED
(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.