Package-level declarations
Types
Represents an update of a dictionary.
Random-access file handle abstraction. All operations are expected to be blocking
Abstraction over file system access used by the FUS client.
Interface providing lifecycle hooks to FUS components.
Minimal HTTP client abstraction used by the FUS client to talk to backend services. Implementations should be synchronous.
JSON serialization abstraction used by the FUS client. Implementations can delegate to different JSON libraries.
Factory for creating simple logger instances used by the FUS client. Implementations can bridge to platform-specific logging (e.g., java.util.logging).
Dispatches validated reports to the backend. Implementations typically serialize the report to JSON and send it over HTTP.
Simple HTTP response wrapper.
Possible stages at which a metadata load/update error can occur
Lightweight pub/sub message bus for intra-component communication.
A handler for subscribing to a specific message topic on a MessageBus. It listens for messages published to the specified Topic and processes them using the provided handler function on a new coroutine in the provided CoroutineScope.
Provides access to validation rules and anonymization metadata required for processing FUS reports. Implementations may fetch and cache metadata from remote sources and/or bundled resources.
Resolves remote endpoints and client options used by the FUS client. Implementations can consult product configuration, environment, and server responses.
Performs anonymization of sensitive fields in a report according to metadata rules.
Validates a report against metadata rules (group rules, event id rules, fields, etc.).
Properties
Topic type String represents the version of the metadata that was loaded.
Topic type String represents the version of the updated metadata.
Topic for notifying subscribers about configuration option updates. The updates may contain no changes.
Functions
Use bundledFileStorage in case your product comes with pre-bundled metadata in case clients are not connected to internet on first startup of the product.
Use eventLogFileStorage to specify a separate file storage for event log data used by the report dispatcher. If not set, the regular fileStorage will be used instead.