Skip to content

TransmitterConfiguration Class

The transmitter's configuration metadata (SSF 1.0 Section 7.1): what a receiver learns from "/.well-known/ssf-configuration" before creating a stream - who the transmitter is, where its keys and endpoints live, and which delivery methods it speaks.

C#
public sealed record TransmitterConfiguration : System.IEquatable<Abblix.SharedSignals.Model.TransmitterConfiguration>

Inheritance System.Object → TransmitterConfiguration

Implements System.IEquatable<TransmitterConfiguration>

Properties

TransmitterConfiguration.AddSubjectEndpoint Property

The URL of the add subject endpoint (SSF 1.0 Sections 7.1, 8.1.3).

C#
public System.Uri? AddSubjectEndpoint { get; init; }

Property Value

System.Uri

TransmitterConfiguration.AuthorizationSchemes Property

The supported authorization scheme descriptions (SSF 1.0 Section 7.1.1). Kept as raw JSON objects: their shape is scheme-specific, and this package stays agnostic of how a host authorizes stream management.

C#
public System.Collections.Generic.IReadOnlyList<System.Text.Json.Nodes.JsonObject>? AuthorizationSchemes { get; init; }

Property Value

System.Collections.Generic.IReadOnlyList<System.Text.Json.Nodes.JsonObject>

TransmitterConfiguration.ConfigurationEndpoint Property

The URL of the stream configuration endpoint (SSF 1.0 Sections 7.1, 8.1.1).

C#
public System.Uri? ConfigurationEndpoint { get; init; }

Property Value

System.Uri

TransmitterConfiguration.CriticalSubjectMembers Property

Member names in a complex subject which, when present in an event's subject member, a receiver must interpret (SSF 1.0 Section 7.1).

C#
public System.Collections.Generic.IReadOnlyList<string>? CriticalSubjectMembers { get; init; }

Property Value

System.Collections.Generic.IReadOnlyList<System.String>

TransmitterConfiguration.DefaultSubjects Property

The default behavior of newly created streams: one of DefaultSubjectBehaviors, or null when the transmitter leaves the behavior unspecified (SSF 1.0 Section 7.1).

C#
public string? DefaultSubjects { get; init; }

Property Value

System.String

TransmitterConfiguration.DeliveryMethodsSupported Property

The delivery method URIs the transmitter supports (SSF 1.0 Section 7.1); see MethodUri and MethodUri.

C#
public System.Collections.Generic.IReadOnlyList<string>? DeliveryMethodsSupported { get; init; }

Property Value

System.Collections.Generic.IReadOnlyList<System.String>

TransmitterConfiguration.Issuer Property

REQUIRED. The URL, https-schemed with no query or fragment, the transmitter asserts as its issuer identifier; identical to the "iss" claim of every SET it issues (SSF 1.0 Section 7.1).

C#
public string Issuer { get; init; }

Property Value

System.String

TransmitterConfiguration.JwksUri Property

The transmitter's JSON Web Key Set document with the signing keys a receiver validates signatures against. SSF 1.0 Section 7.1 marks the member OPTIONAL and then requires it of any transmitter that signs: "This value MUST be specified if the Transmitter intends to generate signed JWTs." When present the URL must use HTTP over TLS.

C#
public System.Uri? JwksUri { get; init; }

Property Value

System.Uri

TransmitterConfiguration.RemoveSubjectEndpoint Property

The URL of the remove subject endpoint (SSF 1.0 Sections 7.1, 8.1.3).

C#
public System.Uri? RemoveSubjectEndpoint { get; init; }

Property Value

System.Uri

TransmitterConfiguration.SpecVersion Property

The version of the specification the transmitter implements. Absent means the transmitter is assumed to conform to the "1_0-ID1" version (SSF 1.0 Section 7.1).

C#
public string? SpecVersion { get; init; }

Property Value

System.String

TransmitterConfiguration.StatusEndpoint Property

The URL of the stream status endpoint (SSF 1.0 Sections 7.1, 8.1.2).

C#
public System.Uri? StatusEndpoint { get; init; }

Property Value

System.Uri

TransmitterConfiguration.VerificationEndpoint Property

The URL of the verification endpoint (SSF 1.0 Sections 7.1, 8.1.4).

C#
public System.Uri? VerificationEndpoint { get; init; }

Property Value

System.Uri

Methods

TransmitterConfiguration.WellKnownAddress(Uri) Method

The address the metadata for issuer is published at: the well-known segment inserted "into the Issuer between the host component and the path component, if any", with any terminating "/" of the issuer's path removed first (SSF 1.0 Sections 7.2, 7.2.1). The insertion - not a suffix - is what lets one host serve several issuers: "https://tr.example.com/issuer1" resolves to "https://tr.example.com/.well-known/ssf-configuration/issuer1"\.

C#
public static System.Uri WellKnownAddress(System.Uri issuer);

Parameters

issuer System.Uri

The transmitter's issuer identifier, as documented by the transmitter.

Returns

System.Uri

Exceptions

System.ArgumentException
The issuer is relative, carries a query or fragment (SSF 1.0 Section 7.1 defines the identifier without them), or uses a scheme other than https on a non-loopback host - the document behind this address names every endpoint and the signing keys, so its transport is part of the trust, and Section 7.2 expects the https scheme. Loopback stays permitted for local development.