Skip to main content
The unit of authorization. An intent card declares what an agent is allowed to do, the columns it can touch, the conditions that apply, and the response strategy when it strays.

The shape

Lifecycle

  1. Draft — author the card; it’s invisible to the gateway until you save.
  2. Configured — saved with valid scope. Visible on the dashboard but not yet dispensing mandates.
  3. Active — dispatching mandates on every dispense call.

Response strategies

The on_action_outside_scope field selects the strategy the cascade applies when an action falls outside the card’s scope:
  • deny — Violet baseline. Block the call.
  • deny_with_reroute — block + suggest a substitute card.
  • defer — queue for batch review (Ultraviolet trial).
  • substitute — swap in a Violet-tier handler (Ultraviolet trial).
  • allow_with_redact — allow but mask sensitive fields (Ultraviolet trial).
  • allow_with_downgrade — allow with narrower scope (Ultraviolet trial).
Strategies marked Ultraviolet trial give every customer a 30-day free trial on first touch. After that they revert to the Violet baseline (deny or deny_with_reroute) until the customer upgrades. See Trial-everything.

Where they live

Intent cards live in the Gallery (app.inviolet.ai/gallery). They’re stored in the gallery_cards table with category=intents. Each card has a configured payload validated against IntentPayloadSchema from @inviolet/gallery-cards.