Skip to content

Custom Rule Wizard and Export FunctionalityΒ #257

@ibragins

Description

@ibragins
  1. Summary

Implement a user-friendly Rule Wizard within the MTA (Migration Toolkit for Applications) interface. This feature will allow users to create, manage, and export custom analysis rules without requiring manual YAML authoring.

  1. User Perspective
    As a user, I want an intuitive UI guided process to create analysis rules, so that I can define custom migration logic quickly and without syntax errors. Additionally, I want to export these rules as YAML files for version control and sharing.

  2. Proposed Changes
    A. Rule Creation Wizard
    Navigation: Add a "Create Custom Rule" entry point within the MTA Rules management section.

Guided Workflow: A multi-step form (Wizard) to capture:

General Info: Name, ID, Category, and Severity.

Conditions: Logic builders (e.g., when clauses: presence of a specific library, file patterns, etc).

Actions: Define what happens when a rule matches (e.g., display a message, provide a link, or suggest a replacement).

Persistence: Ability to save the rule directly to the MTA internal storage/database.

B. Export Capability
YAML Generation: Implement a service to convert UI-inputted data into valid MTA-compliant YAML format.

Bulk Actions: Allow users to select multiple rules and download them as a single .yaml file.

  1. Acceptance Criteria
    Accessibility: The Wizard page is reachable via the main navigation menu.

Validation: The UI prevents saving a rule if mandatory fields (ID, Condition) are missing.

Success Feedback: User receives a notification when a rule is successfully saved.

Export Integrity: The exported YAML file must be valid and ready to be re-imported or used in the MTA CLI.

  1. Value to Business
    Lower Barrier to Entry: Reduces the need for deep knowledge of YAML schema.

Efficiency: Accelerates the customization of migration assessments.

Portability: Simplifies the distribution of custom rules across different environments.

Metadata

Metadata

Assignees

No one assigned

    Labels

    needs-kindIndicates an issue or PR lacks a `kind/foo` label and requires one.needs-priorityIndicates an issue or PR lacks a `priority/foo` label and requires one.needs-triageIndicates an issue or PR lacks a `triage/foo` label and requires one.stale

    Type

    No type

    Projects

    Status

    πŸ†• New

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions