Class SchemaChangeEntry

Namespace
Kuestenlogik.Bowire.Models
Assembly
Kuestenlogik.Bowire.dll

One detected schema change, as observed by the workbench's schema watch (#185). Entries are append-only: the watch client posts the delta of each poll, and the store prunes anything older than the retention window. Identity is by name, not by object reference — Service and Method carry the same keys the Discover sidebar uses (service name + method fullName), so a click on a logged change can navigate back to the live method.

public sealed record SchemaChangeEntry : IEquatable<SchemaChangeEntry>
Inheritance
SchemaChangeEntry
Implements
Inherited Members

Constructors

SchemaChangeEntry(DateTimeOffset, string, string)

One detected schema change, as observed by the workbench's schema watch (#185). Entries are append-only: the watch client posts the delta of each poll, and the store prunes anything older than the retention window. Identity is by name, not by object reference — Service and Method carry the same keys the Discover sidebar uses (service name + method fullName), so a click on a logged change can navigate back to the live method.

public SchemaChangeEntry(DateTimeOffset At, string Type, string Service)

Parameters

At DateTimeOffset
Type string
Service string

Fields

TypeAdded

Change classification. One of added / removed / signature / deprecation / annotation — mirrored by the workbench's diff classifier in api.js.

public const string TypeAdded = "added"

Field Value

string

TypeAnnotation

See TypeAdded.

public const string TypeAnnotation = "annotation"

Field Value

string

TypeDeprecation

See TypeAdded.

public const string TypeDeprecation = "deprecation"

Field Value

string

TypeRemoved

See TypeAdded.

public const string TypeRemoved = "removed"

Field Value

string

TypeSignature

See TypeAdded.

public const string TypeSignature = "signature"

Field Value

string

Properties

At

public DateTimeOffset At { get; init; }

Property Value

DateTimeOffset

Detail

Short human-readable explanation of what moved, e.g. "route GET /pets → POST /pets" or "marked deprecated". Optional.

public string? Detail { get; init; }

Property Value

string

Method

Method fullName within Service. Null for service-level changes (a whole service appeared / vanished).

public string? Method { get; init; }

Property Value

string

Service

public string Service { get; init; }

Property Value

string

Type

public string Type { get; init; }

Property Value

string

Methods

Deconstruct(out DateTimeOffset, out string, out string)

public void Deconstruct(out DateTimeOffset At, out string Type, out string Service)

Parameters

At DateTimeOffset
Type string
Service string

Equals(SchemaChangeEntry?)

public bool Equals(SchemaChangeEntry? other)

Parameters

other SchemaChangeEntry

Returns

bool

Equals(object?)

public override bool Equals(object? obj)

Parameters

obj object

Returns

bool

GetHashCode()

public override int GetHashCode()

Returns

int

IsKnownType(string?)

True when type is a known change classification.

public static bool IsKnownType(string? type)

Parameters

type string

Returns

bool

ToString()

public override string ToString()

Returns

string

Operators

operator ==(SchemaChangeEntry?, SchemaChangeEntry?)

public static bool operator ==(SchemaChangeEntry? left, SchemaChangeEntry? right)

Parameters

left SchemaChangeEntry
right SchemaChangeEntry

Returns

bool

operator !=(SchemaChangeEntry?, SchemaChangeEntry?)

public static bool operator !=(SchemaChangeEntry? left, SchemaChangeEntry? right)

Parameters

left SchemaChangeEntry
right SchemaChangeEntry

Returns

bool