Skip to main content

Module status

Module status 

Source
Expand description

The three ACME state machines, as types rather than strings.

orders.status, authorizations.status and challenges.status are TEXT columns with a CHECK naming the values each may hold, and the code around them used to compare against string literals — order.status == "valid", authz.status != "pending" — at thirty-odd sites spread over handlers/, sqlite/ and the relay flow. A typo in one of those compiles and silently changes policy: != "readyy" is always true, and the order it guards becomes finalizable for names nobody proved control of.

These enums are a Rust-side change only. Each variant’s as_str is the byte-identical string the column already holds, so the frozen migrations and their CHECK constraints are untouched, and RFC 8555 still sees exactly the spellings it defines.

Structs§

UnknownStatus
A status column held a value outside its CHECK — or, far more likely, an operator typed one.

Enums§

AuthzStatus
An authorization’s state (RFC 8555 §7.1.6).
ChallengeStatus
A challenge’s state (RFC 8555 §8).
OrderStatus
An order’s state (RFC 8555 §7.1.6).