Enforce CheckStatus.BLOCKING for app vendor pre-migration checks

XMLWordPrintable

    • 1

      Summary

      The BLOCKING value of CheckStatus in the app vendor pre-migration check API is not enforced by the Cloud Migration Assistants. A check returning CheckStatus.BLOCKING produces exactly the same customer experience as CheckStatus.WARNING — the customer can proceed with the migration.

      This means Marketplace Partners currently have no supported way to prevent a customer from running a migration that the Partner knows will produce incomplete or broken app data.

      Current behaviour

      Marketplace Partners expose pre-migration checks by implementing PreMigrationCheckRepository
      from com.atlassian:atlassian-app-cloud-migration-listener:

      public interface PreMigrationCheckRepository {
          Set<CheckSpec> getAvailableChecks();
          CheckResult executeCheck(String checkId, MigrationPlanContext context);
      }
      

      CheckResult.getStatus() supports SUCCESS, WARNING, BLOCKING and CHECK_EXECUTION_ERROR. Regardless of whether WARNING or BLOCKING is returned:

      • the check renders with identical visual treatment in the CMA pre-migration checks screen
      • the Run button remains enabled
      • no acknowledgement or confirmation is required from the customer
      • the app is not removed or deselected from the migration plan

      This is documented as intended-but-unimplemented behaviour at
      https://developer.atlassian.com/platform/app-migration/set-up-app-vendor-checks/, under "The executeCheck() method":

      BLOCKING - There is an issue that will prevent the app from migrating. This status currently
      creates the same customer experience as WARNING status, it does not block the migration. We
      plan to enable the blocking behaviour in the future.

      Expected behaviour

      A check returning CheckStatus.BLOCKING should prevent the migration of that app from proceeding until the underlying condition is resolved, consistent with the documented definition of the status.

              Assignee:
              Unassigned
              Reporter:
              Deepak Pandey
              Votes:
              27 Vote for this issue
              Watchers:
              8 Start watching this issue

                Created:
                Updated: