Foundry. Annotations
(foundry v0.1.6)
Copy Markdown
Registers standard Foundry annotation module attributes as persistent.
Modules that declare Foundry-specific annotations must use Foundry.Annotations
BEFORE any other use macros. This suppresses Elixir compiler warnings about
"module attribute was set but never used" while keeping attributes accessible
at runtime via module.__info__(:attributes) for the Foundry rules engine.
Registered attributes:
- @compliance - List of regulatory requirement IDs (e.g. [:RG_MGA_005])
- @telemetry_prefix - Structured telemetry prefix list
- @adapter_name - String identifier for adapter modules
- @foundry - Map of Foundry metadata for Oban workers and others
- @runbook - Path to operational runbook document
- @adrs - List of ADR references
- @idempotency_key - Reactor idempotency key for deduplication (atom or tuple)
- @spec_invariants - Custom spec rule invariants and constraints
- @step_side_effects - Map of step names to lists of side effect declarations
Usage:
use Foundry.Annotations
@compliance [:RG_MGA_005, :RG_UK_011]
@telemetry_prefix [:igaming_ref, :promotions, :bonus_campaign]
use Ash.Resource, domain: MyApp.Domain, ...