Gate fabric session endpoint through node config
This commit is contained in:
@@ -755,6 +755,15 @@ func startSyntheticMeshEndpoint(ctx context.Context, _ context.CancelFunc, cfg c
|
||||
}
|
||||
log.Printf("fabric_service_channel_access_event=%s", string(payload))
|
||||
},
|
||||
FabricSessionEnabled: cfg.MeshFabricSessionEnabled,
|
||||
FabricSessionLogger: func(entry mesh.FabricSessionEventLogEntry) {
|
||||
payload, err := json.Marshal(entry)
|
||||
if err != nil {
|
||||
log.Printf("fabric session event marshal failed: %v", err)
|
||||
return
|
||||
}
|
||||
log.Printf("fabric_session_event=%s", string(payload))
|
||||
},
|
||||
RemoteWorkspaceFrameSink: remoteWorkspaceFrameSink,
|
||||
ProductionRoutes: routes,
|
||||
VPNPacketIngress: vpnFabricIngress,
|
||||
@@ -1639,6 +1648,15 @@ func applyRefreshedSyntheticMeshConfig(ctx context.Context, cfg config.Config, i
|
||||
}
|
||||
log.Printf("fabric_service_channel_access_event=%s", string(payload))
|
||||
},
|
||||
FabricSessionEnabled: cfg.MeshFabricSessionEnabled,
|
||||
FabricSessionLogger: func(entry mesh.FabricSessionEventLogEntry) {
|
||||
payload, err := json.Marshal(entry)
|
||||
if err != nil {
|
||||
log.Printf("fabric session event marshal failed: %v", err)
|
||||
return
|
||||
}
|
||||
log.Printf("fabric_session_event=%s", string(payload))
|
||||
},
|
||||
RemoteWorkspaceFrameSink: meshState.RemoteWorkspaceFrameSink,
|
||||
ProductionRoutes: loadedConfig.Routes,
|
||||
VPNPacketIngress: vpnFabricIngress,
|
||||
@@ -2447,6 +2465,21 @@ func heartbeatPayload(cfg config.Config, identity state.Identity, meshState *syn
|
||||
if cfg.MeshProductionForwardingEnabled || (meshState != nil && meshState.ProductionForwardingEnabled) {
|
||||
payload.Capabilities["mesh_production_forwarding"] = true
|
||||
}
|
||||
if cfg.MeshFabricSessionEnabled {
|
||||
payload.Metadata["fabric_session_endpoint_report"] = map[string]any{
|
||||
"schema_version": "rap.fabric_session_endpoint_report.v1",
|
||||
"enabled": true,
|
||||
"transport": "websocket_binary_frames",
|
||||
"path": "/mesh/v1/fabric/session/ws",
|
||||
"auth": "rap_fsn_token_with_optional_signed_authority",
|
||||
"protocol": "rap.fabric_data_session.v1",
|
||||
"service_neutral": true,
|
||||
"traffic_isolation": "logical_streams",
|
||||
"observed_at": observedAt.UTC().Format(time.RFC3339Nano),
|
||||
}
|
||||
payload.Capabilities["fabric_session_websocket_endpoint"] = true
|
||||
payload.Capabilities["fabric_data_session_v1"] = true
|
||||
}
|
||||
if meshState != nil && meshState.ConfigLoadError != "" {
|
||||
payload.HealthStatus = "warning"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user