Expand description
What a plan’s identity is, and what it deliberately ignores.
An approval binds to a fingerprint over the semantic inputs, and an apply regenerates it and refuses on any difference. So the fingerprint has to answer one question exactly: would this plan still do the same thing to the same target? Anything that changes the answer is in. Anything that cannot is out, or every rerun would invalidate itself.
The encoding is RFC 8785 JSON canonicalization, restricted to the value kinds a plan’s inputs need: integers, strings, booleans, nulls, arrays, and string-keyed objects. Floating point is excluded by the type rather than handled, because the one genuinely subtle part of the RFC is the number grammar and a plan has no reason to carry a float.
Enums§
- Value
- The value kinds a fingerprint input may be.
Functions§
- canonical
- Encode one value as RFC 8785 canonical JSON.
- fingerprint
- The digest of one canonical encoding.