pub struct SignedTaskStatusV1 {
pub schema_version: u32,
pub sender: String,
pub recipient: String,
pub tenant_id: String,
pub project_id: String,
pub task_id: String,
pub request_digest: String,
pub status: TaskStatusV1,
pub issued_at: DateTime<Utc>,
pub expires_at: DateTime<Utc>,
pub key_id: String,
pub signature: String,
}Fields§
§schema_version: u32§sender: String§recipient: String§tenant_id: String§project_id: String§task_id: String§request_digest: String§status: TaskStatusV1§issued_at: DateTime<Utc>§expires_at: DateTime<Utc>§key_id: String§signature: StringImplementations§
Source§impl SignedTaskStatusV1
impl SignedTaskStatusV1
Sourcepub fn sign_status(
request: &TaskControlDescriptorV1,
status: TaskStatusV1,
key_id: &str,
key: &SigningKey,
now: DateTime<Utc>,
) -> Result<Self, InvalidTaskResponse>
pub fn sign_status( request: &TaskControlDescriptorV1, status: TaskStatusV1, key_id: &str, key: &SigningKey, now: DateTime<Utc>, ) -> Result<Self, InvalidTaskResponse>
Call only after receiver-side request and target authorization. The key must be the configured identity for request.recipient, not a generated fallback identity. Verification independently checks that trust binding.
Sourcepub fn sign_status_with(
request: &TaskControlDescriptorV1,
status: TaskStatusV1,
key_id: &str,
now: DateTime<Utc>,
sign: impl FnOnce(&[u8]) -> Result<Vec<u8>, String>,
) -> Result<Self, InvalidTaskResponse>
pub fn sign_status_with( request: &TaskControlDescriptorV1, status: TaskStatusV1, key_id: &str, now: DateTime<Utc>, sign: impl FnOnce(&[u8]) -> Result<Vec<u8>, String>, ) -> Result<Self, InvalidTaskResponse>
Low-level callback seam, not an identity/admission authority. Callers must authorize request, target and signer independently. The HTTP task receiver uses AdmittedStatusSigner with the configured task policy.
Sourcepub fn from_json(raw: &str) -> Result<Self, InvalidTaskResponse>
pub fn from_json(raw: &str) -> Result<Self, InvalidTaskResponse>
Bounded wire parsing is not verification. Call verify before consuming status; successful HTTP transport alone conveys no response provenance.
Sourcepub fn verify(
&self,
request: &TaskControlDescriptorV1,
policy: &TaskAuthorityConfigV1,
now: DateTime<Utc>,
) -> Result<(), InvalidTaskResponse>
pub fn verify( &self, request: &TaskControlDescriptorV1, policy: &TaskAuthorityConfigV1, now: DateTime<Utc>, ) -> Result<(), InvalidTaskResponse>
Trust comes from the caller’s configured peer table, never the reply. This authenticates the peer’s observation; it does not grant permission to execute a task operation. A fresh request nonce changes request_digest and rejects a response replayed from any prior polling request.
Trait Implementations§
Source§impl Clone for SignedTaskStatusV1
impl Clone for SignedTaskStatusV1
Source§impl Debug for SignedTaskStatusV1
impl Debug for SignedTaskStatusV1
Source§impl<'de> Deserialize<'de> for SignedTaskStatusV1
impl<'de> Deserialize<'de> for SignedTaskStatusV1
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 SignedTaskStatusV1
Source§impl PartialEq for SignedTaskStatusV1
impl PartialEq for SignedTaskStatusV1
Source§impl Serialize for SignedTaskStatusV1
impl Serialize for SignedTaskStatusV1
impl StructuralPartialEq for SignedTaskStatusV1
Auto Trait Implementations§
impl Forget for SignedTaskStatusV1
impl Freeze for SignedTaskStatusV1
impl Move for SignedTaskStatusV1
impl RefUnwindSafe for SignedTaskStatusV1
impl Send for SignedTaskStatusV1
impl Sync for SignedTaskStatusV1
impl Unpin for SignedTaskStatusV1
impl UnsafeUnpin for SignedTaskStatusV1
impl UnwindSafe for SignedTaskStatusV1
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
impl<A, B, T> HttpServerConnExec<A, B> for Twhere
B: Body,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more