ServerInfo class

A server's self-description, published with FlutterwareServer.info.

Every field is a section; null means "not saying", not "clear it" — a publish only replaces the sections it names.

Constructors

ServerInfo({String? baseUrl, String? environment, List<ServerLink>? links, List<ServerConnection>? connections, Map<String, Map<String, Object?>>? config})

Properties

baseUrl → String?
Where the server listens — http://localhost:8080. Load-bearing: it is what makes the server openable in a browser and what relative ServerLink.urls resolve against.
final
config → Map<String, Map<String, Object?>>?
Everything else, grouped: {'Feature flags': {'newCheckout': true}}. Values are arbitrary JSON; the GUI renders nested ones as trees.
final
connections → List<ServerConnection>?
What the server talks to — databases, caches, brokers.
final
environment → String?
A short environment name — dev, staging. The GUI colors it, loudly for anything production-shaped: an inspector forced on with FW_SERVER_INSPECT=1 should say where it is pointed.
final
hashCode → int
The hash code for this object.
no setterinherited
isEmpty → bool
no setter
The pages worth a click: health endpoint, API docs, an admin UI, a dashboard.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
toJson() → Map<String, Object?>
Only the sections present — the merge unit on the attacher side.
toString() → String
A string representation of this object.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited

Static Methods

fromEvents(Iterable<ServerEvent> events) → ServerInfo
The latest published state: every info event's sections, in event order, later sections replacing earlier ones. What the panel and the info action both show, so they cannot disagree.
fromJson(Map<String, Object?> json) → ServerInfo
Tolerant of anything the wire hands over: a section that does not have the expected shape reads back as absent rather than throwing — the same stance as tryDecodeFrame.