ExpirySignal — Examples
DATA PLATE
ExpirySignal emits temporal validity facts at read time. There are no schedulers, background jobs, automatic revocations, or hidden enforcement paths.
EXAMPLE
// Application-owned outcome example.
// ExpirySignal does not revoke, invalidate, or block.
enum ExpiryState {
Expired = "expired",
NotExpired = "not_expired",
}
let exp: { signal: ExpiryState; expires_at: string } | null = null;
try {
// Read-time temporal validity lookup.
exp = await expirySignal.state({
subject: userId,
scope: "trial",
});
} catch (err) {
// Failure policy is application-owned.
return rejectTrialAccess("Expiry state unavailable");
}
if (!exp || exp.signal === ExpiryState.Expired) {
return rejectTrialAccess("Trial expired");
}
// Not expired is not authorization.
// The application may still evaluate identity, plan, denial state, or local policy.
return continueTrialFlow();Not expired ≠ authorized. Correctness depends on stored state, the time source, and explicit application behavior.
← Examples·Spec Sheet [ID: EXP-01]