pub struct RecipeIdentity {
pub recipe: String,
pub key: String,
}Expand description
Who a remote run proved itself to be, cryptographically.
A forge workload’s WorkloadSpec::name is a fresh forge-<uuid> per run,
so it can never appear in an allow-list written in advance — which left
SecretAccess::AllowAny as the only rule under which a dispatched recipe
could read a cluster secret at all. That is precisely the ambient grant W235
§(c) says must not be how a remote build gets the R2 and cosign keys.
This is the durable identity underneath the ephemeral one: the recipe name
out of a verified admission grant, plus the key that vouched for it. Both
halves matter — the name alone would let anyone holding any trusted key
mint a grant claiming to be rusty-v8-musl.
Construct only from
admission::admit_grant’s return value.
Fields§
§recipe: StringAdmissionGrant::recipe from the verified grant.
key: StringHex Ed25519 public key that signed it, as pinned on the node.
Trait Implementations§
Source§impl Clone for RecipeIdentity
impl Clone for RecipeIdentity
Source§fn clone(&self) -> RecipeIdentity
fn clone(&self) -> RecipeIdentity
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RecipeIdentity
impl Debug for RecipeIdentity
Source§impl<'de> Deserialize<'de> for RecipeIdentity
impl<'de> Deserialize<'de> for RecipeIdentity
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
impl Eq for RecipeIdentity
Source§impl PartialEq for RecipeIdentity
impl PartialEq for RecipeIdentity
Source§impl Serialize for RecipeIdentity
impl Serialize for RecipeIdentity
impl StructuralPartialEq for RecipeIdentity
Auto Trait Implementations§
impl Freeze for RecipeIdentity
impl RefUnwindSafe for RecipeIdentity
impl Send for RecipeIdentity
impl Sync for RecipeIdentity
impl Unpin for RecipeIdentity
impl UnsafeUnpin for RecipeIdentity
impl UnwindSafe for RecipeIdentity
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.