Skip to main content

ExecutePipelineCaller

Namespace: Meshmakers.Octo.Communication.Contracts.MessageObjects

The invoker of a manual ExecutePipelineRequest, carried from the communication controller to the adapter so a FromExecutePipelineCommand pipeline runs as the user who invoked it rather than anonymously (AB#5126, "carry the invoker through onto the execution context"). A serialisable, transport-level mirror of the SDK's VerifiedPrincipal: this contract assembly is lower than the pipeline SDK and cannot reference that type, so the node maps this DTO onto a VerifiedPrincipal on arrival.

public record ExecutePipelineCaller : IEquatable<ExecutePipelineCaller>

Inheritance ObjectExecutePipelineCaller
Implements IEquatable<ExecutePipelineCaller>

Remarks:

🟢 Additive & back-compatible. Every member is optional; a message published by an older controller carries none of them and the pipeline runs anonymously exactly as before.

🔴 Token-free. Like VerifiedPrincipal, this record carries no credential — the invoker's raw token, when a node needs it for delegation, travels on the separate ExecutePipelineRequest.CallerAccessToken field, never here, because the principal is projected into the pipeline data root which is persisted and echoed.

Properties

SubjectId

Subject id ("sub" claim) of the invoker, or null for a client-credentials token.

public string SubjectId { get; set; }

Property Value

String

TenantId

Tenant id claim of the invoker, if present.

public string TenantId { get; set; }

Property Value

String

Email

E-mail claim of the invoker, if present.

public string Email { get; set; }

Property Value

String

Name

Display-name claim of the invoker, if present.

public string Name { get; set; }

Property Value

String

Roles

Role claims of the invoker.

public IReadOnlyList<string> Roles { get; set; }

Property Value

IReadOnlyList<String>

TrustLevel

Effective trust of the invoker as a None=0 / Weak=1 / Strong=2 value (AB#5126). A manually invoked pipeline is triggered with an authenticated bearer token, so a resolved invoker is Strong (2).

public int TrustLevel { get; set; }

Property Value

Int32

Constructors

ExecutePipelineCaller()

public ExecutePipelineCaller()