Validation assertion

The validation assertion declares that a certain revision for a snap that is gated by another snap has been validated for a given series. It is closely related to the snap-declaration assertion.

Validation assertion fields

The following fields can be used in a validation assertion:

type:                   validation
authority-id:           <authority account-id>
revision:               <int>
series:                 <list of series which should accept this assertion>
snap-id:                <snap-id>
approved-snap-id:       <snap-id>
approved-snap-revision: <int>
timestamp:              <UTC datetime>
revoked:                <bool>
sign-key-sha3-384: <key id> # Encoded key id of signing key

<signature>                 # Encoded signature

The index is the tuple <series, snap-id, approved-snap-id, approved-snap-revision>.

This assertion indicates that refreshing to revision number revision of snap approved-snap-id, for series, has been approved by authority-id, given that snap-id the snap that was gating the update also has authority-id as the owner.

The approved-snap-id must be part of the refresh-control list in the snap-declaration assertion of snap-id for this to be enforced.

This means the recommended revision for approved-snap-id in a system that has snap-id installed is the one in the revision header. There will be no automatic installation of newer revisions until a validation with a newer revision is released by the store. Note however that this does not forbid a forced update by the device owner.

The validation can be revoked by using the optional flag revoked.

See Assertion format for more details on fields common to most assertions.

Example assertion

The following is an example validation assertion:

type: validation
authority-id: canonical
revision: 1
series: 16
snap-id: kkOOPWIl0sF7FoSA0KRTt83b1eoynkBa
approved-snap-id: JIpOmfrI0JpaN3uNQQgNv5x3fW06nOYX
approved-snap-revision: 37
timestamp: 2017-02-20T10:23:51+00:00
sign-key-sha3-384: C9mhxTpowHTXM3HOwgg3ZCX-WD05CczlNMdrCBbl2l0d4J_CcjYBS8NQpI-TtQlL

AcLBXAQAAQoABgUCWKrI2QAKCRC03QWqtcJXZRFbEACDcCy15wPNpjcJyFYEt05A4WWzGPQMlC09
1lv62WAancrRaenLOi3xmeIPgsuPk9xKgrn16dBlytCK5GUHiHsafR+34mt/ridaVSKY5zCIkvcJ
mgIH3jMB1RZiY2gtlxXD14G+nK67PKvM6BBfMdBB9ItLAdh5LM3ycbE/8ZqY7aYuTLKfOIPYGjUY
2rRlOaCggeXsru9wbnNwCwGBHZ9ltBgsISZQiSMGnH38OMNgjNOQy0PIB+elmYLEoTKXc+qU1x5w
/R8cwUzWwcd56Ty/WpGdAfBrpO4/afFgVtGrixEWtVigIoIigPb7wytmQYcnl/Y0bQMVNZiYFQdF
tZ9MGGTzA/ieRrjJHOQEj+VfDA4rHU2vUTGlZtseukhGNhSNgI52zhDyynhB/Hxy1t0rJ8eJju2a
G27p2GuJvGrxfjxcge47LZ0WJaKe9R82/AsrFLlnJ4d29K0RUPnYohwlDwWTAOTE2SAz6/kIRNIv
sOuHdIXIMarsbbRIG1kC++Rl/XI9jWvoM++fT1kHCjXgKfi+CELo8YcOKHPbjWSd7DiAmSnR5I6f
ovydzkMPTzzbsxyKePQHicKiqPs4dSfcEnPIGTpvgpGE4WEI3zYGYmsGgFOJqEnuy0IvVRCtJXU4
yk/p3Jqwss3W0YbfypCWrvMBxho1mN5SRhaQv3r+kw==