question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Overhaul Batch Change Workflow

See original GitHub issue

Background

The manual review workflow that is currently implemented for Batch Changes is hard to follow across the various states and transitions. The purpose of this effort is to streamline the workflow, and finalize and reshape the states and workflows to be in a better place.

Proposed Workflow

Proposed State Machine

diagram source

@startuml
hide empty description

[*] --> PendingReview : SUBMIT (warnings or scheduled)
[*] --> Processing : SUBMIT (no warnings not scheduled)
[*] --> Scheduled : SUBMIT (no warnings and scheduled)

PendingReview --> PendingReview : APPROVE (warnings)
PendingReview --> Processing : APPROVE (no warnings not scheduled)
PendingReview --> Scheduled : APPROVE (no warnings and scheduled)
PendingReview --> [*] : ABANDON (reject or cancel)

Scheduled --> Scheduled : VALIDATE (no warnings)
Scheduled --> PendingReview : VALIDATE (new warnings)
Scheduled --> Processing : PROCESS (no warnings)
Scheduled --> [*] : ABANDON (reject or cancel)

Processing --> [*] : Done
@enduml


The process starts when the batch change is submitted.

Pending Review

A batch change enters Pending Review only when there are warnings present. These warnings can include missing zones or domains flagged for Manual Review. The only way to advance the batch change is to clear all warnings.

Available Actions

  • CANCEL - the requesting user can cancel the request
  • REJECT - an authorized approver can reject the request if for some reason it should not be implemented.
  • APPROVE - an authorized approver can approve the request. This will clear any line items requiring manual review, as well as re-execute validations to see if the batch change can proceed. If warnings remain (or new warnings are found), the change will remain in PendingReview.

Transitions

  • On CANCEL --> goto a Cancelled state, capturing the user cancelling the request and the cancellation time.
  • On REJECT --> goto a Rejected state, capturing the user rejecting the request, an optional rejection reason.
  • On APPROVE
    • if warnings exist --> stay in a PendingReview state until the warnings are addressed
    • if no warnings and scheduled --> goto a Scheduled state until the scheduled datetime has elapsed
    • if no warnings and not scheduled --> goto Processing state for exercising the batch change

Scheduled

A batch change enters a Scheduled state only when there are no errors or warnings and a scheduled datetime has been set on the batch change.

Actions

  • PROCESS - can be triggered automatically when the scheduled datetime elapses or manually triggered via an endpoint to process the scheduled change. Note: when a scheduled change is processed, due to the fact that the world may have changed for some number of weeks while it was in a scheduled state, VinylDNS will re-run validations again. If there are warnings at this time, the requirement is to move to PendingReview and alert someone of the issue.
  • VALIDATE - an authorized reviewer can re-validate a Scheduled change prior to processing to ensure that there are no new warnings that may occur.
  • CANCEL - the requester may cancel the request at anytime before it is processed.
  • REJECT - an authorized reviewer may reject the request at anytime before it is processed.

Transitions

  • On PROCESS
    • if no new warnings --> goto Processing where changes are applied
    • if new warnings --> goto PendingReview where the reviewer can remediate
    • if scheduled not elapsed --> stay and notify user the scheduled time has not elapsed
  • On VALIDATE
    • if no new warnings --> stay until scheduled datetime elapses
    • if new warnings --> goto PendingReview
  • On CANCEL --> goto Cancelled, capturing the user cancelling the request and the cancellation time.
  • On REJECT --> goto a Rejected state, capturing the user rejecting the request, an optional rejection reason.

Processing

Processing is a temporary state during which a Batch Change is being applied to the DNS backend

Actions

NONE

Transitions

  • if all changes fail in batch --> goto Failed
  • if some changes fail in batch --> goto PartialFailure
  • if all changes succeed in batch --> goto Complete

Issue Analytics

  • State:open
  • Created 4 years ago
  • Reactions:1
  • Comments:11 (11 by maintainers)

github_iconTop GitHub Comments

1reaction
pauljamesclearycommented, Sep 27, 2019

@britneywright updated to put REJECT back in.

0reactions
britneywrightcommented, Sep 30, 2019

don’t forget the existing statuses, Complete, Failed and PartialFailure that will come after PendingReview or Scheduled.

This kind of brings us back to approval status and how the two are essentially the same except that an approved batch change could fail or partial fail during the backend processing

Read more comments on GitHub >

github_iconTop Results From Across the Web

Can I change the status / workflow of issues in batch?
The short answer is that almost all the things that can be done to a single issue can be done with multiple issues....
Read more >
Pro Media Tools 1.3 released with QT Edit batch overhaul - Blog
We've completely overhauled batch processing in QT Edit, boosting performance and stability. This has allowed us to remove the limit on the ...
Read more >
Mass Update on Project Status - Wrike Help Center
1. Select table view · 2. Change the status of the first project · 3. Select this cell, wait for the mouse pointer...
Read more >
Sitecore Dynamic Workflow Batching
Creating a new item version and adding it to a new batch workflow; Adding an existing item version to a workflow and switching...
Read more >
38 Maintaining Batch Headers
Revising a batch can include deleting a batch header record, allowing a batch to post out of balance, preventing a batch from appearing...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found