# Demo using UI

[Step By Step](#id-1.-step-by-step)

[Demo Video](#id-2.-demo-video)

## 1. Step By Step

### Purpose

Policy warnings improve authoring reliability by notifying users about non-fatal issues in policy definitions.

These may include deprecated components, unreachable blocks, or outdated configurations.

The system allows toggling visibility for each category, helping focus on relevant issues without hiding critical errors.

**Key principle: Errors are always shown and always affect policy validity.**

### Access & Configuration

#### Location

Toolbar → Validation → ▾ → Configuration.

From this dialog, users can enable or disable the display of warnings and informational messages by category.

<figure><img src="https://1556785885-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNYWPEEAknX9Vki1yV5HY%2Fuploads%2Fgit-blob-9046bcf499a10ff3fdfd5983875693da6a09f7a2%2Funknown.png?alt=media" alt=""><figcaption></figcaption></figure>

#### Default Behavior

* All toggles are OFF by default.
* Errors are always visible and affect policy validity.
* Filtering of warnings and information is handled on the backend through the ignoreRules configuration.

<figure><img src="https://1556785885-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNYWPEEAknX9Vki1yV5HY%2Fuploads%2Fgit-blob-b38b8337cd9a6ff1e131405fad3e68889fb7d993%2Funknown.png?alt=media" alt=""><figcaption></figcaption></figure>

#### Message Severity

Messages are categorized by severity:

| **Severity** | **Description**                                            | **Configurable** |
| ------------ | ---------------------------------------------------------- | ---------------- |
| Error        | Critical validation failure. Prevents publishing.          | No               |
| Warning      | Potential issue (e.g., deprecated element, missing input). | Yes              |
| Info         | Non-critical advisory message.                             | Yes              |

#### Hierarchy and Visual Priority

**Error > Warning > Info**

If a block has multiple message types, the highest-severity badge is displayed.

**Filtering Behavior**

The filtering mechanism allows selective visibility control:

* Warnings – Master toggle for messages with severity warning.
* Information – Master toggle for messages with severity info.

{% hint style="info" %}
**Important: Turning on only “Warnings” or “Information” is not sufficient; you must also enable specific categories (see below).**
{% endhint %}

<figure><img src="https://1556785885-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNYWPEEAknX9Vki1yV5HY%2Fuploads%2Fgit-blob-7288431c770417aa872a69a9a55599692774d6c3%2Funknown.png?alt=media" alt=""><figcaption></figcaption></figure>

### Categories

#### Warnings (severity: "warning")

| **Category**           | **Description**                                         |
| ---------------------- | ------------------------------------------------------- |
| REACHABILITY\_NO\_IN   | Block has no incoming events (unreachable).             |
| REACHABILITY\_NO\_OUT  | Block has no outgoing events.                           |
| REACHABILITY\_ISOLATED | Block is isolated — no inbound or outbound connections. |
| DEPRECATION\_BLOCK     | Block uses a deprecated type.                           |
| DEPRECATION\_PROP      | Block uses deprecated property definitions.             |

#### Information (severity: "info")

Categories explicitly marked in the validation registry as info (e.g., minor deprecations, legacy hints).

<figure><img src="https://1556785885-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNYWPEEAknX9Vki1yV5HY%2Fuploads%2Fgit-blob-50eb7cf90a3c51e50782f3a7df1fe6503a5ec7fe%2Funknown.png?alt=media" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1556785885-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNYWPEEAknX9Vki1yV5HY%2Fuploads%2Fgit-blob-149ed2c187b36024a8cc8455106d8529077c0fad%2Funknown.png?alt=media" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1556785885-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNYWPEEAknX9Vki1yV5HY%2Fuploads%2Fgit-blob-acdd9b59945bb32c6ea7c073e65bc279dc21c6da%2Funknown.png?alt=media" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1556785885-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FNYWPEEAknX9Vki1yV5HY%2Fuploads%2Fgit-blob-88c495775e037ce32d58def9dc45cc735b4c4767%2Funknown.png?alt=media" alt=""><figcaption></figcaption></figure>

### Behavior in the Editor

#### Visual Feedback

* The Block Tree assigns \[error], \[warning], or \[info] attributes to affected elements for highlighting.
* Block Properties Panel displays categorized lists under:
* Errors
* Warnings
* Information
* The Validation Toolbar shows counters and the currently active severity level:\
  Errors → Warnings → Info

#### Persistence

User selections are stored locally to preserve preferences between sessions.

| **Storage** | **Key**                                 | **Scope** |
| ----------- | --------------------------------------- | --------- |
| IndexedDB   | POLICY\_WARNINGS / IGNORE\_RULES\_STORE | policyId  |

Selections remain active until:

* “Clear Selection” is used in the dialog (resets toggles to OFF),
* The policy is deleted,
* Application state is cleared, or
* The policy is successfully published.

### Message sources

#### Deprecations

Source registries:

* DEPRECATED\_BLOCKS
* DEPRECATED\_PROPERTIES

Each entry’s severity determines whether it surfaces as a warning or informational message.

#### Reachability

Validation logic inspects:

* Explicit links: Events, options.events, target, to, targetTag, targetId.
* Implicit links: Blocks with defaultEvent === true, unless properties.stopPropagation === true.

These connect automatically to the next sibling block in sequence.

## 2. Demo Video

[Youtube](https://youtu.be/VYKE2NAbfmI?si=9RwWglglvlWrfLbL\&t=191)
