Skip to content

Write Rules

Purpose

Write rules control whether a user is allowed to create, modify, or delete data. They are enforced directly in the UI and API.

Write rules:

  • Always attach to a classification
  • Are evaluated in real time
  • Provide structured user feedback

Severity Levels

Level Effect
Error Blocks saving
Warning Allows saving
Info Informational only
Confirmation Requires user acknowledgment

Role Targeting

Write rules may:

  • Apply to selected roles
  • Exclude specific roles
  • Apply globally if no roles are selected

Behavior

Write rules only block new violations introduced by the current edit, meaning that existing rule violations are displayed but do not prevent users from updating unrelated fields, while only violations caused by the current change will block saving.

Additional Information

This behavior exists to prevent the permission system from becoming a blocker for normal system operation once real-world data has accumulated. In long-lived systems, business rules almost always evolve over time, and legacy data may no longer fully comply with newly introduced constraints. If write rules were enforced retroactively on every edit, users would be unable to correct simple, unrelated fields—such as updating an address, fixing a typo, or adding a note—without first resolving historical rule violations that may be outside their responsibility or even their authority to fix. By only blocking new violations introduced by the current change, Minyu ensures that data quality improves gradually without freezing operational workflows, while still guaranteeing that no additional invalid states are introduced into the system.

Configuring a Write Rule

  1. Open the classification
  2. Open context menu → Configure Write Rule
  3. Configure:

  4. Active

  5. Message – primary feedback
  6. Details – optional deep explanation
  7. When True
  8. Severity
  9. Roles / Exclude Roles
  10. Save

Enforcement Scope

Write rules are enforced uniformly across forms, inline editing, imports, and APIs, operating identically on all data entry paths.