рабочий вариант, но скороть 10 МБит
build / backend (push) Has been cancelled
build / node-agent (push) Has been cancelled
build / worker (push) Has been cancelled

This commit is contained in:
2026-05-22 21:46:49 +03:00
parent 469fa0e860
commit 20d361a886
280 changed files with 954890 additions and 18524 deletions
+340 -226
View File
@@ -53,10 +53,8 @@ const (
FabricServiceClassRemoteWorkspace = "remote_workspace"
FabricServiceClassFileTransfer = "file_transfer"
FabricServiceClassVideo = "video"
FabricServiceClassPlatformAdmin = "platform_admin"
FabricServiceClassClusterAdmin = "cluster_admin"
FabricServiceClassOrganization = "organization_portal"
FabricServiceClassUserPortal = "user_portal"
FabricServiceClassAdminIngress = "admin-ingress"
FabricServiceClassPublicIngress = "public-ingress"
FabricChannelControl = "control"
FabricChannelInteractive = "interactive"
@@ -66,27 +64,21 @@ const (
)
var allowedNodeRoles = map[string]struct{}{
"public-ingress": {},
"admin-ingress": {},
"global-admin-runtime": {},
"cluster-admin-runtime": {},
"organization-portal-runtime": {},
"user-portal-runtime": {},
"identity-runtime": {},
"policy-authority": {},
"audit-sink": {},
"entry-node": {},
"relay-node": {},
"core-mesh": {},
"rdp-worker": {},
"vnc-worker": {},
"vpn-exit": {},
"vpn-connector": {},
"vpn-client": {},
"ipv4-egress": {},
"file-storage-cache": {},
"update-cache": {},
"video-relay": {},
"public-ingress": {},
"admin-ingress": {},
"entry-node": {},
"relay-node": {},
"core-mesh": {},
"rdp-worker": {},
"vnc-worker": {},
"vpn-exit": {},
"vpn-connector": {},
"vpn-client": {},
"ipv4-ingress": {},
"ipv4-egress": {},
"file-storage-cache": {},
"update-cache": {},
"video-relay": {},
}
type Cluster struct {
@@ -163,8 +155,7 @@ type DockerInstallProfileRequest struct {
type DockerInstallProfile struct {
SchemaVersion string `json:"schema_version"`
ClusterID string `json:"cluster_id"`
BackendURL string `json:"backend_url"`
ControlPlaneEndpoints []string `json:"control_plane_endpoints,omitempty"`
ClusterAuthorityPublicKey string `json:"cluster_authority_public_key,omitempty"`
ArtifactEndpoints []string `json:"artifact_endpoints,omitempty"`
FabricRegistryRecords json.RawMessage `json:"fabric_registry_records,omitempty"`
DockerImageArtifact *DockerArtifact `json:"docker_image_artifact,omitempty"`
@@ -179,12 +170,12 @@ type DockerInstallProfile struct {
Replace bool `json:"replace"`
DockerVPNGatewayEnabled bool `json:"docker_vpn_gateway_enabled"`
WorkloadSupervisionEnabled bool `json:"workload_supervision_enabled"`
MeshSyntheticRuntimeEnabled bool `json:"mesh_synthetic_runtime_enabled"`
FabricRuntimeEnabled bool `json:"fabric_runtime_enabled"`
MeshProductionForwardingEnabled bool `json:"mesh_production_forwarding_enabled"`
MeshListenAddr string `json:"mesh_listen_addr,omitempty"`
MeshListenPortMode string `json:"mesh_listen_port_mode,omitempty"`
MeshListenAutoPortStart int `json:"mesh_listen_auto_port_start,omitempty"`
MeshListenAutoPortEnd int `json:"mesh_listen_auto_port_end,omitempty"`
FabricListenAddr string `json:"fabric_listen_addr,omitempty"`
FabricListenPortMode string `json:"fabric_listen_port_mode,omitempty"`
FabricListenAutoPortStart int `json:"fabric_listen_auto_port_start,omitempty"`
FabricListenAutoPortEnd int `json:"fabric_listen_auto_port_end,omitempty"`
MeshAdvertiseEndpoint string `json:"mesh_advertise_endpoint,omitempty"`
MeshAdvertiseEndpointsJSON json.RawMessage `json:"mesh_advertise_endpoints_json,omitempty"`
MeshAdvertiseTransport string `json:"mesh_advertise_transport,omitempty"`
@@ -201,8 +192,7 @@ type DockerInstallProfile struct {
type WindowsInstallProfile struct {
SchemaVersion string `json:"schema_version"`
ClusterID string `json:"cluster_id"`
BackendURL string `json:"backend_url"`
ControlPlaneEndpoints []string `json:"control_plane_endpoints,omitempty"`
ClusterAuthorityPublicKey string `json:"cluster_authority_public_key,omitempty"`
ArtifactEndpoints []string `json:"artifact_endpoints,omitempty"`
FabricRegistryRecords json.RawMessage `json:"fabric_registry_records,omitempty"`
NodeAgentArtifact *DockerArtifact `json:"node_agent_artifact,omitempty"`
@@ -212,12 +202,12 @@ type WindowsInstallProfile struct {
InstallDir string `json:"install_dir"`
StartupMode string `json:"startup_mode"`
WorkloadSupervisionEnabled bool `json:"workload_supervision_enabled"`
MeshSyntheticRuntimeEnabled bool `json:"mesh_synthetic_runtime_enabled"`
FabricRuntimeEnabled bool `json:"fabric_runtime_enabled"`
MeshProductionForwardingEnabled bool `json:"mesh_production_forwarding_enabled"`
MeshListenAddr string `json:"mesh_listen_addr,omitempty"`
MeshListenPortMode string `json:"mesh_listen_port_mode,omitempty"`
MeshListenAutoPortStart int `json:"mesh_listen_auto_port_start,omitempty"`
MeshListenAutoPortEnd int `json:"mesh_listen_auto_port_end,omitempty"`
FabricListenAddr string `json:"fabric_listen_addr,omitempty"`
FabricListenPortMode string `json:"fabric_listen_port_mode,omitempty"`
FabricListenAutoPortStart int `json:"fabric_listen_auto_port_start,omitempty"`
FabricListenAutoPortEnd int `json:"fabric_listen_auto_port_end,omitempty"`
MeshAdvertiseEndpoint string `json:"mesh_advertise_endpoint,omitempty"`
MeshAdvertiseEndpointsJSON json.RawMessage `json:"mesh_advertise_endpoints_json,omitempty"`
MeshAdvertiseTransport string `json:"mesh_advertise_transport,omitempty"`
@@ -234,8 +224,7 @@ type WindowsInstallProfile struct {
type LinuxInstallProfile struct {
SchemaVersion string `json:"schema_version"`
ClusterID string `json:"cluster_id"`
BackendURL string `json:"backend_url"`
ControlPlaneEndpoints []string `json:"control_plane_endpoints,omitempty"`
ClusterAuthorityPublicKey string `json:"cluster_authority_public_key,omitempty"`
ArtifactEndpoints []string `json:"artifact_endpoints,omitempty"`
FabricRegistryRecords json.RawMessage `json:"fabric_registry_records,omitempty"`
NodeAgentArtifact *DockerArtifact `json:"node_agent_artifact,omitempty"`
@@ -245,12 +234,12 @@ type LinuxInstallProfile struct {
InstallDir string `json:"install_dir"`
StartupMode string `json:"startup_mode"`
WorkloadSupervisionEnabled bool `json:"workload_supervision_enabled"`
MeshSyntheticRuntimeEnabled bool `json:"mesh_synthetic_runtime_enabled"`
FabricRuntimeEnabled bool `json:"fabric_runtime_enabled"`
MeshProductionForwardingEnabled bool `json:"mesh_production_forwarding_enabled"`
MeshListenAddr string `json:"mesh_listen_addr,omitempty"`
MeshListenPortMode string `json:"mesh_listen_port_mode,omitempty"`
MeshListenAutoPortStart int `json:"mesh_listen_auto_port_start,omitempty"`
MeshListenAutoPortEnd int `json:"mesh_listen_auto_port_end,omitempty"`
FabricListenAddr string `json:"fabric_listen_addr,omitempty"`
FabricListenPortMode string `json:"fabric_listen_port_mode,omitempty"`
FabricListenAutoPortStart int `json:"fabric_listen_auto_port_start,omitempty"`
FabricListenAutoPortEnd int `json:"fabric_listen_auto_port_end,omitempty"`
MeshAdvertiseEndpoint string `json:"mesh_advertise_endpoint,omitempty"`
MeshAdvertiseEndpointsJSON json.RawMessage `json:"mesh_advertise_endpoints_json,omitempty"`
MeshAdvertiseTransport string `json:"mesh_advertise_transport,omitempty"`
@@ -264,6 +253,19 @@ type LinuxInstallProfile struct {
Roles []string `json:"roles,omitempty"`
}
type InstallJoinBundle struct {
SchemaVersion string `json:"schema_version"`
BundleKind string `json:"bundle_kind"`
ClusterID string `json:"cluster_id"`
ClusterAuthority *ClusterAuthorityDescriptor `json:"cluster_authority,omitempty"`
AuthorityPayload json.RawMessage `json:"authority_payload,omitempty"`
AuthoritySignature *ClusterSignature `json:"authority_signature,omitempty"`
IssuedAt time.Time `json:"issued_at"`
DockerInstallProfile *DockerInstallProfile `json:"docker_install_profile,omitempty"`
WindowsInstallProfile *WindowsInstallProfile `json:"windows_install_profile,omitempty"`
LinuxInstallProfile *LinuxInstallProfile `json:"linux_install_profile,omitempty"`
}
type DockerArtifact struct {
Kind string `json:"kind"`
Image string `json:"image,omitempty"`
@@ -324,15 +326,19 @@ type NodeUpdatePolicy struct {
}
type NodeUpdateHint struct {
SchemaVersion string `json:"schema_version"`
Generation string `json:"generation,omitempty"`
CheckNow bool `json:"check_now"`
Products []string `json:"products,omitempty"`
Reason string `json:"reason,omitempty"`
DeliveryMode string `json:"delivery_mode,omitempty"`
SubscriptionStatus string `json:"subscription_status,omitempty"`
UpdateService *NodeUpdateServiceAssignment `json:"update_service,omitempty"`
FallbackPollSeconds int `json:"fallback_poll_seconds,omitempty"`
SchemaVersion string `json:"schema_version"`
Generation string `json:"generation,omitempty"`
CheckNow bool `json:"check_now"`
Products []string `json:"products,omitempty"`
TargetVersions map[string]string `json:"target_versions,omitempty"`
Reason string `json:"reason,omitempty"`
DeliveryMode string `json:"delivery_mode,omitempty"`
SubscriptionStatus string `json:"subscription_status,omitempty"`
UpdateService *NodeUpdateServiceAssignment `json:"update_service,omitempty"`
UpdateServiceCandidates []NodeUpdateServiceAssignment `json:"update_service_candidates,omitempty"`
RescuePollSeconds int `json:"rescue_poll_seconds,omitempty"`
AuthorityPayload json.RawMessage `json:"authority_payload,omitempty"`
AuthoritySignature *ClusterSignature `json:"authority_signature,omitempty"`
}
type NodeUpdateServiceAssignment struct {
@@ -356,23 +362,75 @@ type NodeUpdateServiceCandidate struct {
}
type NodeUpdatePlan struct {
SchemaVersion string `json:"schema_version"`
ClusterID string `json:"cluster_id"`
NodeID string `json:"node_id"`
Product string `json:"product"`
CurrentVersion string `json:"current_version,omitempty"`
Action string `json:"action"`
Reason string `json:"reason"`
TargetVersion string `json:"target_version,omitempty"`
Channel string `json:"channel,omitempty"`
Strategy string `json:"strategy,omitempty"`
RollbackAllowed bool `json:"rollback_allowed"`
HealthWindowSec int `json:"health_window_seconds,omitempty"`
Artifact *ReleaseArtifact `json:"artifact,omitempty"`
AuthorityPayload json.RawMessage `json:"authority_payload,omitempty"`
AuthoritySignature *ClusterSignature `json:"authority_signature,omitempty"`
AuthorityQuorum *QuorumEnvelope `json:"authority_quorum,omitempty"`
ProductionForwarding bool `json:"production_forwarding"`
SchemaVersion string `json:"schema_version"`
ClusterID string `json:"cluster_id"`
NodeID string `json:"node_id"`
Product string `json:"product"`
CurrentVersion string `json:"current_version,omitempty"`
Action string `json:"action"`
Reason string `json:"reason"`
TargetVersion string `json:"target_version,omitempty"`
Channel string `json:"channel,omitempty"`
Strategy string `json:"strategy,omitempty"`
RollbackAllowed bool `json:"rollback_allowed"`
HealthWindowSec int `json:"health_window_seconds,omitempty"`
FabricRegistryRecords json.RawMessage `json:"fabric_registry_records,omitempty"`
UpdateIntent *NodeUpdateIntent `json:"update_intent,omitempty"`
RolloutLease *NodeUpdateLease `json:"rollout_lease,omitempty"`
Artifact *ReleaseArtifact `json:"artifact,omitempty"`
AuthorityPayload json.RawMessage `json:"authority_payload,omitempty"`
AuthoritySignature *ClusterSignature `json:"authority_signature,omitempty"`
AuthorityQuorum *QuorumEnvelope `json:"authority_quorum,omitempty"`
ProductionForwarding bool `json:"production_forwarding"`
}
type NodeUpdateArtifactContent struct {
SchemaVersion string `json:"schema_version"`
ArtifactID string `json:"artifact_id"`
Product string `json:"product"`
Version string `json:"version"`
DataBase64 string `json:"data_base64"`
SHA256 string `json:"sha256,omitempty"`
ChunkSHA256 string `json:"chunk_sha256,omitempty"`
SizeBytes int64 `json:"size_bytes,omitempty"`
Offset int64 `json:"offset,omitempty"`
ChunkSize int64 `json:"chunk_size,omitempty"`
Complete bool `json:"complete,omitempty"`
DistributorID string `json:"distributor_id,omitempty"`
}
type NodeUpdateIntent struct {
SchemaVersion string `json:"schema_version"`
IntentID string `json:"intent_id"`
ClusterID string `json:"cluster_id"`
NodeID string `json:"node_id,omitempty"`
Product string `json:"product"`
TargetVersion string `json:"target_version"`
Strategy string `json:"strategy"`
Generation string `json:"generation"`
CreatedAt time.Time `json:"created_at"`
ExpiresAt time.Time `json:"expires_at"`
RollbackAllowed bool `json:"rollback_allowed"`
HealthWindowSec int `json:"health_window_seconds,omitempty"`
RequiredLease bool `json:"required_lease"`
AllowedMirrors []string `json:"allowed_mirrors,omitempty"`
}
type NodeUpdateLease struct {
SchemaVersion string `json:"schema_version"`
LeaseID string `json:"lease_id"`
IntentID string `json:"intent_id"`
ClusterID string `json:"cluster_id"`
NodeID string `json:"node_id"`
Product string `json:"product"`
TargetVersion string `json:"target_version"`
Strategy string `json:"strategy"`
Status string `json:"status"`
Reason string `json:"reason,omitempty"`
MaxParallel int `json:"max_parallel"`
ActiveUpdateCnt int `json:"active_update_count"`
AcquiredAt time.Time `json:"acquired_at"`
ExpiresAt time.Time `json:"expires_at"`
}
type NodeBridgeReplayProductPlan struct {
@@ -414,52 +472,87 @@ type NodeUpdateStatus struct {
}
type StaleNodeRiskReport struct {
ClusterID string `json:"cluster_id"`
GeneratedAt time.Time `json:"generated_at"`
HeartbeatStaleAfterSeconds int `json:"heartbeat_stale_after_seconds"`
LegacyRemovalAllowed bool `json:"legacy_removal_allowed"`
BridgeHoldRequired bool `json:"bridge_hold_required"`
BridgeHoldNodeIDs []string `json:"bridge_hold_node_ids,omitempty"`
BridgeHoldReasons []string `json:"bridge_hold_reasons,omitempty"`
BlockedOperations []string `json:"blocked_operations,omitempty"`
Nodes []StaleNodeRiskNode `json:"nodes"`
Summary StaleNodeRiskSummary `json:"summary"`
ClusterID string `json:"cluster_id"`
GeneratedAt time.Time `json:"generated_at"`
HeartbeatStaleAfterSeconds int `json:"heartbeat_stale_after_seconds"`
FabricStandardCleanupAllowed bool `json:"fabric_standard_cleanup_allowed"`
BridgeHoldRequired bool `json:"bridge_hold_required"`
BridgeHoldNodeIDs []string `json:"bridge_hold_node_ids,omitempty"`
BridgeHoldReasons []string `json:"bridge_hold_reasons,omitempty"`
BlockedOperations []string `json:"blocked_operations,omitempty"`
Nodes []StaleNodeRiskNode `json:"nodes"`
Summary StaleNodeRiskSummary `json:"summary"`
}
type StaleNodeRiskSummary struct {
TotalNodes int `json:"total_nodes"`
StaleNodes int `json:"stale_nodes"`
BlockedNodes int `json:"blocked_nodes"`
DirectPeerAlertNodes int `json:"direct_peer_alert_nodes"`
ArtifactGapNodes int `json:"artifact_gap_nodes"`
UnknownProfileNodes int `json:"unknown_profile_nodes"`
WaitingUpdateStatusNodes int `json:"waiting_update_status_nodes"`
UnknownVersionNodes int `json:"unknown_version_nodes"`
LegacyRecoveryContractNodes int `json:"legacy_recovery_contract_nodes"`
RecoveryBridgeRequiredNodes int `json:"recovery_bridge_required_nodes"`
RecoveryBridgeReplayReadyNodes int `json:"recovery_bridge_replay_ready_nodes"`
WaitingRecoveryHeartbeatNodes int `json:"waiting_recovery_heartbeat_nodes"`
TotalNodes int `json:"total_nodes"`
StaleNodes int `json:"stale_nodes"`
BlockedNodes int `json:"blocked_nodes"`
DirectPeerAlertNodes int `json:"direct_peer_alert_nodes"`
AreaDiversityAlertNodes int `json:"area_diversity_alert_nodes"`
IndependentIngressAlertNodes int `json:"independent_ingress_alert_nodes"`
DirectoryDisseminationAlertNodes int `json:"directory_dissemination_alert_nodes"`
UpdaterSubscriptionAlertNodes int `json:"updater_subscription_alert_nodes"`
UpdaterWakeUnsupportedNodes int `json:"updater_wake_unsupported_nodes"`
UpdaterRuntimeMissingNodes int `json:"updater_runtime_missing_nodes"`
StandardUpdaterLineNodes int `json:"standard_updater_line_nodes"`
StagedSelfUpdatePendingNodes int `json:"staged_self_update_pending_nodes"`
PostUpdateHeartbeatGapNodes int `json:"post_update_heartbeat_gap_nodes"`
ArtifactGapNodes int `json:"artifact_gap_nodes"`
StandardControlDependencyNodes int `json:"standard_control_dependency_nodes"`
RegistryCandidateOnlyNodes int `json:"registry_candidate_only_nodes"`
RegistryJoinContractMissingNodes int `json:"registry_join_missing_nodes"`
UnknownProfileNodes int `json:"unknown_profile_nodes"`
WaitingUpdateStatusNodes int `json:"waiting_update_status_nodes"`
UnknownVersionNodes int `json:"unknown_version_nodes"`
StandardRecoveryContractNodes int `json:"standard_recovery_contract_nodes"`
RecoveryBridgeRequiredNodes int `json:"recovery_bridge_required_nodes"`
RecoveryBridgeReplayReadyNodes int `json:"recovery_bridge_replay_ready_nodes"`
WaitingRecoveryHeartbeatNodes int `json:"waiting_recovery_heartbeat_nodes"`
}
type StaleNodeRiskNode struct {
NodeID string `json:"node_id"`
Name string `json:"name"`
RegistrationStatus string `json:"registration_status"`
HealthStatus string `json:"health_status"`
ReportedVersion *string `json:"reported_version,omitempty"`
LastSeenAt *time.Time `json:"last_seen_at,omitempty"`
HeartbeatStale bool `json:"heartbeat_stale"`
Blocked bool `json:"blocked"`
DirectPeerAlert bool `json:"direct_peer_alert"`
DirectPeerReadyCount int `json:"direct_peer_ready_count,omitempty"`
DirectPeerTargetCount int `json:"direct_peer_target_count,omitempty"`
DirectPeerDeficit int `json:"direct_peer_deficit,omitempty"`
Alerts []string `json:"alerts,omitempty"`
RecoveryBridgeRequired bool `json:"recovery_bridge_required"`
RecoveryBridgeReplayReady bool `json:"recovery_bridge_replay_ready"`
RecoveryBridgeActions []string `json:"recovery_bridge_actions,omitempty"`
Risks []string `json:"risks,omitempty"`
Products []StaleNodeRiskProduct `json:"products,omitempty"`
NodeID string `json:"node_id"`
Name string `json:"name"`
Area string `json:"area,omitempty"`
RegistrationStatus string `json:"registration_status"`
HealthStatus string `json:"health_status"`
ReportedVersion *string `json:"reported_version,omitempty"`
LastSeenAt *time.Time `json:"last_seen_at,omitempty"`
HeartbeatStale bool `json:"heartbeat_stale"`
Blocked bool `json:"blocked"`
DirectPeerAlert bool `json:"direct_peer_alert"`
DirectPeerReadyCount int `json:"direct_peer_ready_count,omitempty"`
DirectPeerTargetCount int `json:"direct_peer_target_count,omitempty"`
DirectPeerDeficit int `json:"direct_peer_deficit,omitempty"`
DirectReadyAreas []string `json:"direct_ready_areas,omitempty"`
ExternalAreaReadyCount int `json:"external_area_ready_count,omitempty"`
RequiredExternalAreaCount int `json:"required_external_area_count,omitempty"`
AreaDiversityAlert bool `json:"area_diversity_alert"`
RequiredIndependentIngressCount int `json:"required_independent_ingress_count,omitempty"`
IndependentIngressAlert bool `json:"independent_ingress_alert"`
FullDirectoryExpected bool `json:"full_directory_expected"`
KnownPeerDirectoryCount int `json:"known_peer_directory_count,omitempty"`
ExpectedDirectoryCount int `json:"expected_directory_count,omitempty"`
DirectoryDisseminationAlert bool `json:"directory_dissemination_alert"`
UpdaterSubscriptionAlert bool `json:"updater_subscription_alert"`
UpdaterWakeUnsupported bool `json:"updater_wake_unsupported"`
UpdaterRuntimeMissing bool `json:"updater_runtime_missing"`
StandardUpdaterLine bool `json:"standard_updater_line"`
StagedSelfUpdatePending bool `json:"staged_self_update_pending"`
PostUpdateHeartbeatGap bool `json:"post_update_heartbeat_gap"`
StandardControlDependency bool `json:"standard_control_dependency"`
StandardControlURL string `json:"standard_control_url,omitempty"`
RegistryRuntimeStatus string `json:"registry_runtime_status,omitempty"`
RegistryJoinContractMissing bool `json:"registry_join_missing"`
ResolvedServiceCount int `json:"resolved_service_count,omitempty"`
IndependentIngressCount int `json:"independent_ingress_count,omitempty"`
Alerts []string `json:"alerts,omitempty"`
RecoveryBridgeRequired bool `json:"recovery_bridge_required"`
RecoveryBridgeReplayReady bool `json:"recovery_bridge_replay_ready"`
RecoveryBridgeActions []string `json:"recovery_bridge_actions,omitempty"`
Risks []string `json:"risks,omitempty"`
Products []StaleNodeRiskProduct `json:"products,omitempty"`
}
type StaleNodeRiskProduct struct {
@@ -478,13 +571,15 @@ type StaleNodeRiskProduct struct {
LastStatusPhase string `json:"last_status_phase,omitempty"`
LastStatusValue string `json:"last_status_value,omitempty"`
LastStatusReason string `json:"last_status_reason,omitempty"`
StagedSelfUpdatePending bool `json:"staged_self_update_pending"`
PostUpdateHeartbeatGap bool `json:"post_update_heartbeat_gap"`
RecoveryBridgeRequired bool `json:"recovery_bridge_required"`
RecoveryBridgeReplayReady bool `json:"recovery_bridge_replay_ready"`
RecoveryBridgeMode string `json:"recovery_bridge_mode,omitempty"`
Risks []string `json:"risks,omitempty"`
}
type NodeBootstrap struct {
type NodeJoinContract struct {
NodeID string `json:"node_id"`
ClusterID string `json:"cluster_id"`
IdentityStatus string `json:"identity_status"`
@@ -664,23 +759,23 @@ type FabricServiceChannelAdaptivePolicy struct {
}
type FabricServiceChannelPoolPolicy struct {
SchemaVersion string `json:"schema_version"`
Fingerprint string `json:"fingerprint,omitempty"`
EntryPoolNodeIDs []string `json:"entry_pool_node_ids,omitempty"`
ExitPoolNodeIDs []string `json:"exit_pool_node_ids,omitempty"`
PreferredEntryNodeID string `json:"preferred_entry_node_id,omitempty"`
PreferredExitNodeID string `json:"preferred_exit_node_id,omitempty"`
SelectionStrategy string `json:"selection_strategy"`
RouteRebuild string `json:"route_rebuild"`
EntryFailover string `json:"entry_failover"`
ExitFailover string `json:"exit_failover"`
BackendFallbackAllowed bool `json:"backend_fallback_allowed"`
StickySession bool `json:"sticky_session"`
Source string `json:"source"`
UpdatedByUserID *string `json:"updated_by_user_id,omitempty"`
UpdatedAt time.Time `json:"updated_at,omitempty"`
ControlPlaneOnly bool `json:"control_plane_only"`
ProductionForwarding bool `json:"production_forwarding"`
SchemaVersion string `json:"schema_version"`
Fingerprint string `json:"fingerprint,omitempty"`
EntryPoolNodeIDs []string `json:"entry_pool_node_ids,omitempty"`
ExitPoolNodeIDs []string `json:"exit_pool_node_ids,omitempty"`
PreferredEntryNodeID string `json:"preferred_entry_node_id,omitempty"`
PreferredExitNodeID string `json:"preferred_exit_node_id,omitempty"`
SelectionStrategy string `json:"selection_strategy"`
RouteRebuild string `json:"route_rebuild"`
EntryFailover string `json:"entry_failover"`
ExitFailover string `json:"exit_failover"`
CompatFallbackAllowed bool `json:"degraded_route_allowed"`
StickySession bool `json:"sticky_session"`
Source string `json:"source"`
UpdatedByUserID *string `json:"updated_by_user_id,omitempty"`
UpdatedAt time.Time `json:"updated_at,omitempty"`
ControlPlaneOnly bool `json:"control_plane_only"`
ProductionForwarding bool `json:"production_forwarding"`
}
type FabricServiceChannelBreadcrumbWindowPolicy struct {
@@ -851,12 +946,12 @@ type NodeSyntheticMeshConfig struct {
ServiceChannelFeedback *FabricServiceChannelRouteFeedbackReport `json:"service_channel_route_feedback,omitempty"`
ServiceChannelAdaptivePolicy *FabricServiceChannelAdaptivePolicy `json:"service_channel_adaptive_policy,omitempty"`
ServiceChannelRemediationCommands []FabricServiceChannelAccessRemediationCommand `json:"service_channel_remediation_commands,omitempty"`
MeshListener *NodeMeshListenerConfig `json:"mesh_listener,omitempty"`
FabricListener *NodeFabricListenerConfig `json:"fabric_listener,omitempty"`
Routes []SyntheticMeshRouteConfig `json:"routes"`
ProductionForwarding bool `json:"production_forwarding"`
}
type NodeMeshListenerConfig struct {
type NodeFabricListenerConfig struct {
SchemaVersion string `json:"schema_version"`
Source string `json:"source"`
DesiredState string `json:"desired_state"`
@@ -1094,23 +1189,23 @@ type FabricServiceChannelLeaseRecord struct {
}
type FabricServiceChannelLeaseSummary struct {
ClusterID string `json:"cluster_id"`
ChannelID string `json:"channel_id"`
ResourceID string `json:"resource_id,omitempty"`
ServiceClass string `json:"service_class"`
Status string `json:"status"`
SelectedEntryNodeID string `json:"selected_entry_node_id,omitempty"`
SelectedExitNodeID string `json:"selected_exit_node_id,omitempty"`
AllowedChannels []string `json:"allowed_channels,omitempty"`
PrimaryRouteID string `json:"primary_route_id,omitempty"`
PrimaryRouteStatus string `json:"primary_route_status,omitempty"`
DataPlane FabricServiceChannelDataPlaneContract `json:"data_plane,omitempty"`
ForceBackendFallback bool `json:"force_backend_fallback"`
Expired bool `json:"expired"`
IssuedAt time.Time `json:"issued_at"`
ExpiresAt time.Time `json:"expires_at"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
ClusterID string `json:"cluster_id"`
ChannelID string `json:"channel_id"`
ResourceID string `json:"resource_id,omitempty"`
ServiceClass string `json:"service_class"`
Status string `json:"status"`
SelectedEntryNodeID string `json:"selected_entry_node_id,omitempty"`
SelectedExitNodeID string `json:"selected_exit_node_id,omitempty"`
AllowedChannels []string `json:"allowed_channels,omitempty"`
PrimaryRouteID string `json:"primary_route_id,omitempty"`
PrimaryRouteStatus string `json:"primary_route_status,omitempty"`
DataPlane FabricServiceChannelDataPlaneContract `json:"data_plane,omitempty"`
ForceCompatFallback bool `json:"force_degraded_route"`
Expired bool `json:"expired"`
IssuedAt time.Time `json:"issued_at"`
ExpiresAt time.Time `json:"expires_at"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
type FabricServiceChannelLeaseMaintenance struct {
@@ -1139,15 +1234,15 @@ type FabricServiceChannelAccessTelemetry struct {
TotalAccepted int `json:"total_accepted"`
SignedAccepted int `json:"signed_accepted"`
IntrospectionAccepted int `json:"introspection_accepted"`
LegacyUnsignedAccepted int `json:"legacy_unsigned_accepted"`
BackendFallbackCount int `json:"backend_fallback_count"`
BackendFallbackBlockedCount int `json:"backend_fallback_blocked_count,omitempty"`
CompatUnsignedAccepted int `json:"unsigned_accepted"`
CompatFallbackCount int `json:"degraded_route_use_count"`
CompatFallbackBlockedCount int `json:"degraded_route_blocked_count,omitempty"`
FabricRouteSendFailureCount int `json:"fabric_route_send_failure_count,omitempty"`
DataPlaneContractCount int `json:"data_plane_contract_count,omitempty"`
LastDataPlaneMode string `json:"last_data_plane_mode,omitempty"`
LastWorkingDataTransport string `json:"last_working_data_transport,omitempty"`
LastSteadyStateTransport string `json:"last_steady_state_transport,omitempty"`
LastBackendRelayPolicy string `json:"last_backend_relay_policy,omitempty"`
LastCompatRelayPolicy string `json:"last_degraded_route_policy,omitempty"`
LastLogicalFlowMode string `json:"last_logical_flow_mode,omitempty"`
LastDataPlaneViolationStatus string `json:"last_data_plane_violation_status,omitempty"`
LastDataPlaneViolationReason string `json:"last_data_plane_violation_reason,omitempty"`
@@ -1184,15 +1279,15 @@ type FabricServiceChannelAccessTelemetryNode struct {
TotalAccepted int `json:"total_accepted"`
SignedAccepted int `json:"signed_accepted"`
IntrospectionAccepted int `json:"introspection_accepted"`
LegacyUnsignedAccepted int `json:"legacy_unsigned_accepted"`
BackendFallbackCount int `json:"backend_fallback_count"`
BackendFallbackBlockedCount int `json:"backend_fallback_blocked_count,omitempty"`
CompatUnsignedAccepted int `json:"unsigned_accepted"`
CompatFallbackCount int `json:"degraded_route_use_count"`
CompatFallbackBlockedCount int `json:"degraded_route_blocked_count,omitempty"`
FabricRouteSendFailureCount int `json:"fabric_route_send_failure_count,omitempty"`
DataPlaneContractCount int `json:"data_plane_contract_count,omitempty"`
LastDataPlaneMode string `json:"last_data_plane_mode,omitempty"`
LastWorkingDataTransport string `json:"last_working_data_transport,omitempty"`
LastSteadyStateTransport string `json:"last_steady_state_transport,omitempty"`
LastBackendRelayPolicy string `json:"last_backend_relay_policy,omitempty"`
LastCompatRelayPolicy string `json:"last_degraded_route_policy,omitempty"`
LastLogicalFlowMode string `json:"last_logical_flow_mode,omitempty"`
LastDataPlaneViolationStatus string `json:"last_data_plane_violation_status,omitempty"`
LastDataPlaneViolationReason string `json:"last_data_plane_violation_reason,omitempty"`
@@ -1219,17 +1314,17 @@ type FabricServiceChannelAccessTelemetryChannel struct {
SelectedExitNodeID string `json:"selected_exit_node_id,omitempty"`
PrimaryRouteID string `json:"primary_route_id,omitempty"`
PrimaryRouteStatus string `json:"primary_route_status,omitempty"`
ForceBackendFallback bool `json:"force_backend_fallback"`
ForceCompatFallback bool `json:"force_degraded_route"`
EntryNodeTotalAccepted int `json:"entry_node_total_accepted"`
EntryNodeIntrospectionAccepted int `json:"entry_node_introspection_accepted"`
EntryNodeBackendFallbackCount int `json:"entry_node_backend_fallback_count"`
EntryNodeBackendFallbackBlockedCount int `json:"entry_node_backend_fallback_blocked_count,omitempty"`
EntryNodeCompatFallbackCount int `json:"entry_node_degraded_route_count"`
EntryNodeCompatFallbackBlockedCount int `json:"entry_node_degraded_route_blocked_count,omitempty"`
EntryNodeFabricRouteSendFailureCount int `json:"entry_node_fabric_route_send_failure_count,omitempty"`
EntryNodeDataPlaneContractCount int `json:"entry_node_data_plane_contract_count,omitempty"`
EntryNodeLastDataPlaneMode string `json:"entry_node_last_data_plane_mode,omitempty"`
EntryNodeLastWorkingDataTransport string `json:"entry_node_last_working_data_transport,omitempty"`
EntryNodeLastSteadyStateTransport string `json:"entry_node_last_steady_state_transport,omitempty"`
EntryNodeLastBackendRelayPolicy string `json:"entry_node_last_backend_relay_policy,omitempty"`
EntryNodeLastCompatRelayPolicy string `json:"entry_node_last_degraded_route_policy,omitempty"`
EntryNodeLastLogicalFlowMode string `json:"entry_node_last_logical_flow_mode,omitempty"`
EntryNodeLastDataPlaneViolationStatus string `json:"entry_node_last_data_plane_violation_status,omitempty"`
EntryNodeLastDataPlaneViolationReason string `json:"entry_node_last_data_plane_violation_reason,omitempty"`
@@ -1305,26 +1400,26 @@ type FabricServiceChannelAccessRemediationCommand struct {
}
type FabricServiceChannelLeaseIntrospection struct {
SchemaVersion string `json:"schema_version"`
ClusterID string `json:"cluster_id"`
ChannelID string `json:"channel_id"`
ResourceID string `json:"resource_id,omitempty"`
ServiceClass string `json:"service_class"`
Allowed bool `json:"allowed"`
Status string `json:"status"`
Reason string `json:"reason,omitempty"`
AcceptedBy string `json:"accepted_by"`
SelectedEntryNodeID string `json:"selected_entry_node_id,omitempty"`
SelectedExitNodeID string `json:"selected_exit_node_id,omitempty"`
AllowedChannels []string `json:"allowed_channels,omitempty"`
PreferredRouteID string `json:"preferred_route_id,omitempty"`
ForceBackendFallback bool `json:"force_backend_fallback"`
LeaseStatus string `json:"lease_status,omitempty"`
PrimaryRoute FabricServiceChannelRoute `json:"primary_route,omitempty"`
DataPlane FabricServiceChannelDataPlaneContract `json:"data_plane,omitempty"`
RouteGeneration string `json:"route_generation,omitempty"`
FencingEpoch int64 `json:"fencing_epoch,omitempty"`
ExpiresAt time.Time `json:"expires_at,omitempty"`
SchemaVersion string `json:"schema_version"`
ClusterID string `json:"cluster_id"`
ChannelID string `json:"channel_id"`
ResourceID string `json:"resource_id,omitempty"`
ServiceClass string `json:"service_class"`
Allowed bool `json:"allowed"`
Status string `json:"status"`
Reason string `json:"reason,omitempty"`
AcceptedBy string `json:"accepted_by"`
SelectedEntryNodeID string `json:"selected_entry_node_id,omitempty"`
SelectedExitNodeID string `json:"selected_exit_node_id,omitempty"`
AllowedChannels []string `json:"allowed_channels,omitempty"`
PreferredRouteID string `json:"preferred_route_id,omitempty"`
ForceCompatFallback bool `json:"force_degraded_route"`
LeaseStatus string `json:"lease_status,omitempty"`
PrimaryRoute FabricServiceChannelRoute `json:"primary_route,omitempty"`
DataPlane FabricServiceChannelDataPlaneContract `json:"data_plane,omitempty"`
RouteGeneration string `json:"route_generation,omitempty"`
FencingEpoch int64 `json:"fencing_epoch,omitempty"`
ExpiresAt time.Time `json:"expires_at,omitempty"`
}
type FabricServiceChannelRouteFeedbackObservation struct {
@@ -1970,7 +2065,17 @@ type CreateJoinRequestInput struct {
RequestedRoles json.RawMessage
}
type GetJoinRequestBootstrapInput struct {
type RegisterFabricNodeInput struct {
ClusterID string
NodeKey string
Name string
OwnershipType string
OwnerOrganizationID *string
ReportedVersion *string
Metadata json.RawMessage
}
type GetJoinRequestJoinInput struct {
ClusterID string
JoinRequestID string
NodeFingerprint string
@@ -1988,14 +2093,14 @@ type ApproveJoinRequestInput struct {
}
type ApprovedJoinRequest struct {
JoinRequest NodeJoinRequest `json:"join_request"`
Bootstrap NodeBootstrap `json:"node_bootstrap"`
JoinRequest NodeJoinRequest `json:"join_request"`
JoinContract NodeJoinContract `json:"node_join"`
}
type JoinRequestBootstrapResult struct {
Status string `json:"status"`
JoinRequest NodeJoinRequest `json:"join_request"`
Bootstrap *NodeBootstrap `json:"node_bootstrap,omitempty"`
type JoinRequestJoinResult struct {
Status string `json:"status"`
JoinRequest NodeJoinRequest `json:"join_request"`
JoinContract *NodeJoinContract `json:"node_join,omitempty"`
}
type RejectJoinRequestInput struct {
@@ -2114,15 +2219,24 @@ type UpsertNodeUpdatePolicyInput struct {
}
type GetNodeUpdatePlanInput struct {
ClusterID string
NodeID string
Product string
CurrentVersion string
OS string
Arch string
InstallType string
Channel string
ArtifactOrigin string
ClusterID string
NodeID string
Product string
CurrentVersion string
OS string
Arch string
InstallType string
Channel string
ArtifactOrigin string
ExecutorCapabilities []string
}
type GetNodeUpdateArtifactContentInput struct {
ClusterID string
NodeID string
ArtifactID string
Offset int64
Length int64
}
type GetStaleNodeRiskReportInput struct {
@@ -2276,38 +2390,38 @@ type SetFabricEgressPoolNodeInput struct {
}
type IssueFabricServiceChannelLeaseInput struct {
ActorUserID string
ClusterID string
OrganizationID string
UserID string
ResourceID string
ServiceClass string
EntryNodeIDs []string
ExitNodeIDs []string
PreferredEntryNodeID string
PreferredExitNodeID string
RequiredRoles []string
AllowedChannels []string
QoS json.RawMessage
Failover json.RawMessage
Metadata json.RawMessage
TTL time.Duration
BackendFallbackAllowed *bool
ActorUserID string
ClusterID string
OrganizationID string
UserID string
ResourceID string
ServiceClass string
EntryNodeIDs []string
ExitNodeIDs []string
PreferredEntryNodeID string
PreferredExitNodeID string
RequiredRoles []string
AllowedChannels []string
QoS json.RawMessage
Failover json.RawMessage
Metadata json.RawMessage
TTL time.Duration
CompatFallbackAllowed *bool
}
type UpdateFabricServiceChannelPoolPolicyInput struct {
ActorUserID string
ClusterID string
EntryPoolNodeIDs []string
ExitPoolNodeIDs []string
PreferredEntryNodeID string
PreferredExitNodeID string
SelectionStrategy string
RouteRebuild string
EntryFailover string
ExitFailover string
BackendFallbackAllowed *bool
StickySession *bool
ActorUserID string
ClusterID string
EntryPoolNodeIDs []string
ExitPoolNodeIDs []string
PreferredEntryNodeID string
PreferredExitNodeID string
SelectionStrategy string
RouteRebuild string
EntryFailover string
ExitFailover string
CompatFallbackAllowed *bool
StickySession *bool
}
type UpdateFabricServiceChannelBreadcrumbWindowPolicyInput struct {