Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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

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: