HubConfig constructor
HubConfig({
- required Authenticator authenticator,
- SecurityContext? securityContext,
- String? tlsDirectory,
- Duration tlsReloadInterval = const Duration(hours: 12),
- Object host = '0.0.0.0',
- int port = 8443,
- Authorizer? authorizer,
- String nodeMount = '/node',
- String shellMount = '/shell',
- List<
String> corsOrigins = const [], - Duration heartbeatInterval = const Duration(seconds: 15),
- Duration heartbeatTimeout = const Duration(seconds: 45),
- Duration requestTimeout = const Duration(seconds: 30),
- Clock clock = const SystemClock(),
- IdGenerator idGenerator = const UuidGenerator(),
- EventBus? eventBus,
- NodeRepository? nodeRepository,
- AuditRepository? auditRepository,
- MetricRepository? metricRepository,
- FormulaRepository? formulaRepository,
- PresetRepository? presetRepository,
- GrantRepository? grantRepository,
- DesiredStateRepository? desiredStateRepository,
- StateReconciler? reconciler,
- List<
AlertRule> alertRules = const [], - Duration alertInterval = const Duration(seconds: 15),
- int logCapacityPerNode = 500,
- void logger(
- String message
Creates a Hub configuration.
Provide exactly one TLS source: a static securityContext, or a
tlsDirectory the Hub reloads on renewal.
Implementation
HubConfig({
required this.authenticator,
this.securityContext,
this.tlsDirectory,
this.tlsReloadInterval = const Duration(hours: 12),
this.host = '0.0.0.0',
this.port = 8443,
Authorizer? authorizer,
this.nodeMount = '/node',
this.shellMount = '/shell',
this.corsOrigins = const [],
this.heartbeatInterval = const Duration(seconds: 15),
this.heartbeatTimeout = const Duration(seconds: 45),
this.requestTimeout = const Duration(seconds: 30),
this.clock = const SystemClock(),
this.idGenerator = const UuidGenerator(),
EventBus? eventBus,
NodeRepository? nodeRepository,
AuditRepository? auditRepository,
MetricRepository? metricRepository,
FormulaRepository? formulaRepository,
PresetRepository? presetRepository,
GrantRepository? grantRepository,
DesiredStateRepository? desiredStateRepository,
StateReconciler? reconciler,
this.alertRules = const [],
this.alertInterval = const Duration(seconds: 15),
this.logCapacityPerNode = 500,
this.logger,
}) : assert(
(securityContext == null) != (tlsDirectory == null),
'provide exactly one of securityContext or tlsDirectory',
),
authorizer = authorizer ?? const RoleBasedAuthorizer(),
eventBus = eventBus ?? BroadcastEventBus(),
nodeRepository = nodeRepository ?? MemoryNodeRepository(),
auditRepository = auditRepository ?? MemoryAuditRepository(),
metricRepository = metricRepository ?? MemoryMetricRepository(),
formulaRepository = formulaRepository ?? MemoryFormulaRepository(),
presetRepository = presetRepository ?? MemoryPresetRepository(),
grantRepository = grantRepository ?? MemoryGrantRepository(),
desiredStateRepository =
desiredStateRepository ?? MemoryDesiredStateRepository(),
reconciler = reconciler ?? const DefaultStateReconciler();