Skip to content

COMPANION PRIMITIVE

ExpirySignal

ExpirySignal records expiry timestamps or windows for a subject or scope and returns the current temporal validity fact at read time. Use it for trials, licenses, temporary access, credentials and grace periods.

Your application can include these facts in StateMirror evidence. StateMirror accepts application-defined JSON without any Signal.

Returned facts

  • Expired or not expired
  • Expiry timestamp
  • Optional cause code and operator-provided renewable metadata

ExpirySignal runs in your environment with PostgreSQL. Reads compare stored state against your clock without mutating state or executing side effects. Results depend on stored state and the time source.

Application boundary

Not expired does not mean authorized. Absence of an expiry record is not permission. Your application owns access decisions, renewal workflows, session invalidation and token revocation. ExpirySignal does not schedule or execute those actions.

Before granting time-bound access, query the temporal fact and evaluate it with your own rules. Renewable metadata does not grant renewal permission.

Failure modes

  • Clock skew can make readers disagree about validity.
  • Missing or delayed writes can return an incorrect expiry fact.
  • Subject or scope mismatches can return facts for the wrong entity.
  • Partial writes can leave reads stale or incomplete.
  • Network or database failures can prevent reads or cause timeouts.

Technical specification · Application example · Printable datasheet

Artifact v1.0.1.