aviso-server 0.12.0

Notification service for data-driven workflows with live and replay APIs.
# Practical Examples

This section provides copy-paste examples for common workflows.

All examples use the same generic event schema so behavior is easy to compare.

## Shared Generic Schema

```yaml
notification_schema:
  extreme_event:
    topic:
      base: extreme_event
      key_order: [region, run_time, severity, anomaly]
    identifier:
      region:
        description: "Geographic region label."
        type: EnumHandler
        values: ["north", "south", "east", "west"]
        required: true
      run_time:
        type: TimeHandler
        required: true
      severity:
        description: "Severity level from 1 to 7."
        type: IntHandler
        range: [1, 7]
        required: true
      anomaly:
        type: FloatHandler
        range: [0.0, 100.0]
        required: false
      polygon:
        type: PolygonHandler
        required: false
    payload:
      required: false
```

## Shared Assumptions

- Base URL: `http://127.0.0.1:8000`
- Content type: `application/json`
- Replay examples use `from_id` or `from_date` explicitly.

## Identifier Value Style

The examples in this section send scalar identifier values as JSON strings,
including numeric ones (`"severity":"4"`, `"anomaly":"42.5"`). The server
canonicalizes scalar values to strings. JSON numbers are accepted and produce
the same result. Constraint arguments (`{"gte":5}`, `{"between":[3,7]}`) use
JSON numbers because they are typed comparison operands.

## Notify Identifier Rule

`POST /api/v1/notification` requires every identifier key declared in the
schema, whether it has `required: true` or `required: false`. Every value must
pass its handler validation.

The flag matters on **watch** and **replay**. A missing key marked
`required: true` returns `400`. A missing key marked `required: false` becomes a
wildcard. Provided values and constraint objects still pass through handler
validation.

The shared schema above declares five keys, so notify examples on the following
pages include all five.

Next:

- [Basic Notify/Watch/Replay]./basic-notify-watch-replay.md
- [Spatial Filtering]./spatial-filtering.md
- [Constraint Filtering]./constraint-filtering.md
- [Replay Starting Points]./replay-starting-points.md
- [Admin Operations]./admin-operations.md