feat(device-core): ship host telemetry and scalable VPS inventory
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"schemaVersion": "nodedc.device-plane.device-control-core-release.v4",
|
||||
"releaseId": "__PATCH_ID__",
|
||||
"action": "upgrade",
|
||||
"predecessor": {
|
||||
"kind": "migration-replay-checkpoint-recovery",
|
||||
"patchId": "device-control-core-migration-replay-checkpoint-recovery-20260822-046",
|
||||
"artifactSha256": "46000c76977fb583fc7c9cf74ecf624efd8b404f7b8d0322e0270e7b8ac6e450"
|
||||
},
|
||||
"service": "device-control-core",
|
||||
"composeActivation": "preserve-active-v4-topology",
|
||||
"identity": "reuse-existing-runner-managed-host-local-private-key-public-certificate-export",
|
||||
"identityRecovery": "forbidden-valid-existing-identity-required",
|
||||
"tlsPurpose": "clientAuth",
|
||||
"direction": "core-initiated",
|
||||
"endpointPolicy": "public-ipv4-standard-https-tcp-443-only",
|
||||
"coreNetworks": [
|
||||
"device-plane-private",
|
||||
"device-plane-egress"
|
||||
],
|
||||
"publicIngress": "none-on-synology",
|
||||
"edgeRegistrations": "preserved",
|
||||
"commandTransport": "typed-service-ping-v1",
|
||||
"commandCatalog": "allowlisted-adapter-typed-commands-only",
|
||||
"credentialBoundary": "transient-core-memory-then-single-pinned-mtls-command-envelope-to-edge-never-persisted-never-logged-never-returned",
|
||||
"telemetryTransport": "edge-channel-host-telemetry-observed-v1",
|
||||
"telemetryContract": "nodedc.infrastructure.host-telemetry.v1",
|
||||
"telemetryStorage": "device-control-core-postgres-seven-day-retention",
|
||||
"ontologyProjection": "observation-observed-property-provenance-freshness-v1",
|
||||
"telemetryFreshness": "fifteen-seconds-missing-stale-not-unhealthy",
|
||||
"recoveryPredecessor": "terminal-applied-046-exact-source-runtime-database",
|
||||
"databasePreflight": "final-migration-016-validated-and-host-telemetry-table-absent",
|
||||
"databaseRowMutation": "none-before-core-startup-migrations",
|
||||
"databaseSchemaOutcome": "migration-017-host-telemetry-table-present",
|
||||
"runtimePredecessor": "healthy-recovery-046-core-generation",
|
||||
"gelios": "untouched-legacy-only",
|
||||
"preservedServices": [
|
||||
"device-manager",
|
||||
"device-gateway",
|
||||
"device-postgres",
|
||||
"device-backhaul-target"
|
||||
],
|
||||
"healthGate": "bounded-container-grace+core-edge-contract+exact-private-egress-network-boundary",
|
||||
"rollback": "restore-preapply-source-and-core-runtime"
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"schemaVersion": "nodedc.device-plane.device-manager-release.v10",
|
||||
"releaseId": "__PATCH_ID__",
|
||||
"action": "upgrade",
|
||||
"predecessor": {
|
||||
"kind": "release",
|
||||
"patchId": "device-manager-release-v8-20260822-039",
|
||||
"artifactSha256": "30a83d4c6b5c029c96c4af19fa558e0ae75e4b60bc897881457304bd17e0e465"
|
||||
},
|
||||
"controlCorePredecessor": {
|
||||
"patchId": "device-control-core-release-v4-20260823-047",
|
||||
"artifactSha256": "4aecceeb8d400fdd3dbec8fc86b151691f389d165e72677f396f8994823b6b5c"
|
||||
},
|
||||
"edgeChannelPredecessor": {
|
||||
"patchId": "device-edge-core-channel-upgrade-v4-20260812-023",
|
||||
"artifactSha256": "c10d5b6b7d55ab239f85b6c8130e34ce9f84985e3b46e6e5534733156c7982fc"
|
||||
},
|
||||
"service": "device-manager",
|
||||
"publicIngress": "reverse-proxy-only",
|
||||
"deviceCoreManagementApi": "file-token-authenticated",
|
||||
"launcherTrust": "file-token-scoped-to-device-core-handoff",
|
||||
"edgeChannel": "preserve-active-v4-core-initiated-pinned-mtls",
|
||||
"edgeChannelIdentity": "reuse-runner-managed-host-local-private-key-public-certificate-export",
|
||||
"edgeChannelEgress": "preserve-dedicated-core-only-bridge-no-host-ingress-public-ipv4-tcp-443-only",
|
||||
"healthGate": "bounded-container-grace+core-contract+persistent-data",
|
||||
"commandTransport": "typed-service-ping-v1",
|
||||
"commandCatalog": "allowlisted-adapter-typed-commands-only",
|
||||
"credentialBoundary": "transient-core-memory-then-single-pinned-mtls-command-envelope-to-edge-never-persisted-never-logged-never-returned",
|
||||
"presentationPersistence": "runner-managed-host-data-bind",
|
||||
"presentationDataHostPath": "/volume1/docker/nodedc-device-plane/data/device-manager",
|
||||
"presentationDataContainerPath": "/var/lib/nodedc-device-manager",
|
||||
"presentationDataOwnership": "uid-1000-gid-1000-mode-0750",
|
||||
"presentationDataLifecycle": "preserve-across-manager-recreate-and-source-rollback",
|
||||
"presentationPath": "/var/lib/nodedc-device-manager/device-manager-presentation.json",
|
||||
"mediaRoot": "/var/lib/nodedc-device-manager/media",
|
||||
"defaultAccentHex": "#f5f5f5",
|
||||
"overviewLayout": "mission-core-landing-stage-v1",
|
||||
"faviconSet": "nodedc-adaptive-v1",
|
||||
"commandFormLayout": "aligned-control-row-v1",
|
||||
"secondaryEmptyTypography": "help-text-sm-v1",
|
||||
"infrastructureHostProjection": "ontology-backed-host-runtime-v1",
|
||||
"ontologyFoundation": "ontology-core-device-foundation-20260822-001",
|
||||
"ontologyCatalogHash": "229c61c02a790906",
|
||||
"assetBinding": "temporal-device-asset-binding-v1",
|
||||
"infrastructureRuntime": "host-endpoint-deployment-service-instance-v1",
|
||||
"healthEvidence": "ttl-observation-missing-not-unhealthy-v1",
|
||||
"telemetryWorkspace": "mission-core-compute-module-parity-v1",
|
||||
"telemetryNavigation": "full-workspace-back-navigation-v1",
|
||||
"telemetryPollInterval": "three-seconds",
|
||||
"telemetryFreshness": "fifteen-seconds-missing-stale-not-unhealthy",
|
||||
"telemetryOntologyProjection": "observation-observed-property-provenance-freshness-v1",
|
||||
"telemetryAgent": "telegraf-host-observer-v1",
|
||||
"interactiveShell": "disabled-pending-managed-session-boundary",
|
||||
"gelios": "untouched-legacy-only",
|
||||
"rollback": "restore-preapply-snapshot-preserve-manager-data"
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"schemaVersion": "nodedc.device-plane.device-manager-release.v11",
|
||||
"releaseId": "__PATCH_ID__",
|
||||
"action": "upgrade",
|
||||
"predecessor": {
|
||||
"kind": "release",
|
||||
"patchId": "device-manager-release-v10-20260823-048",
|
||||
"artifactSha256": "e6b983a314db4f8c27d89062dfedf5ed0523cc30421170799d181a19e2d85d4c"
|
||||
},
|
||||
"controlCorePredecessor": {
|
||||
"patchId": "device-control-core-release-v4-20260823-047",
|
||||
"artifactSha256": "4aecceeb8d400fdd3dbec8fc86b151691f389d165e72677f396f8994823b6b5c"
|
||||
},
|
||||
"edgeChannelPredecessor": {
|
||||
"patchId": "device-edge-core-channel-upgrade-v4-20260812-023",
|
||||
"artifactSha256": "c10d5b6b7d55ab239f85b6c8130e34ce9f84985e3b46e6e5534733156c7982fc"
|
||||
},
|
||||
"service": "device-manager",
|
||||
"publicIngress": "reverse-proxy-only",
|
||||
"deviceCoreManagementApi": "file-token-authenticated",
|
||||
"launcherTrust": "file-token-scoped-to-device-core-handoff",
|
||||
"edgeChannel": "preserve-active-v4-core-initiated-pinned-mtls",
|
||||
"edgeChannelIdentity": "reuse-runner-managed-host-local-private-key-public-certificate-export",
|
||||
"edgeChannelEgress": "preserve-dedicated-core-only-bridge-no-host-ingress-public-ipv4-tcp-443-only",
|
||||
"healthGate": "bounded-container-grace+core-contract+persistent-data",
|
||||
"commandTransport": "typed-service-ping-v1",
|
||||
"commandCatalog": "allowlisted-adapter-typed-commands-only",
|
||||
"credentialBoundary": "transient-core-memory-then-single-pinned-mtls-command-envelope-to-edge-never-persisted-never-logged-never-returned",
|
||||
"presentationPersistence": "runner-managed-host-data-bind",
|
||||
"presentationDataHostPath": "/volume1/docker/nodedc-device-plane/data/device-manager",
|
||||
"presentationDataContainerPath": "/var/lib/nodedc-device-manager",
|
||||
"presentationDataOwnership": "uid-1000-gid-1000-mode-0750",
|
||||
"presentationDataLifecycle": "preserve-across-manager-recreate-and-source-rollback",
|
||||
"presentationPath": "/var/lib/nodedc-device-manager/device-manager-presentation.json",
|
||||
"mediaRoot": "/var/lib/nodedc-device-manager/media",
|
||||
"defaultAccentHex": "#f5f5f5",
|
||||
"overviewLayout": "mission-core-landing-stage-v1",
|
||||
"faviconSet": "nodedc-adaptive-v1",
|
||||
"commandFormLayout": "aligned-control-row-v1",
|
||||
"secondaryEmptyTypography": "help-text-sm-v1",
|
||||
"infrastructureHostProjection": "ontology-backed-host-runtime-v1",
|
||||
"ontologyFoundation": "ontology-core-device-foundation-20260822-001",
|
||||
"ontologyCatalogHash": "229c61c02a790906",
|
||||
"assetBinding": "temporal-device-asset-binding-v1",
|
||||
"infrastructureRuntime": "host-endpoint-deployment-service-instance-v1",
|
||||
"healthEvidence": "ttl-observation-missing-not-unhealthy-v1",
|
||||
"designSystem": "nodedc-canonical-components-and-tokens-v1",
|
||||
"missionCoreReference": "compute-modules-workspace-71c8b04",
|
||||
"infrastructureWorkspaceLayout": "mission-core-system-workspace-v1",
|
||||
"hostInventoryComposition": "mission-core-compute-host-list-v1",
|
||||
"telemetryWorkspace": "mission-core-compute-module-visual-parity-v2",
|
||||
"telemetrySurface": "borderless-soft-surface-v1",
|
||||
"telemetryStatus": "mission-core-dot-status-v1",
|
||||
"telemetryNavigation": "full-workspace-back-navigation-v1",
|
||||
"telemetryScroll": "reset-on-workspace-transition-v1",
|
||||
"telemetryPollInterval": "three-seconds",
|
||||
"telemetryFreshness": "fifteen-seconds-missing-stale-not-unhealthy",
|
||||
"telemetryOntologyProjection": "observation-observed-property-provenance-freshness-v1",
|
||||
"telemetryAgent": "telegraf-host-observer-v1",
|
||||
"interactiveShell": "disabled-pending-managed-session-boundary",
|
||||
"gelios": "untouched-legacy-only",
|
||||
"rollback": "restore-preapply-snapshot-preserve-manager-data"
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
{
|
||||
"schemaVersion": "nodedc.device-plane.device-manager-release.v12",
|
||||
"releaseId": "__PATCH_ID__",
|
||||
"action": "upgrade",
|
||||
"predecessor": {
|
||||
"kind": "release",
|
||||
"patchId": "device-manager-release-v11-20260823-049",
|
||||
"artifactSha256": "c1e2056b50bfbb0d03d077461d0c27cc56cc52967c3f5620be14871c8a6d5cf0"
|
||||
},
|
||||
"controlCorePredecessor": {
|
||||
"patchId": "device-control-core-release-v4-20260823-047",
|
||||
"artifactSha256": "4aecceeb8d400fdd3dbec8fc86b151691f389d165e72677f396f8994823b6b5c"
|
||||
},
|
||||
"edgeChannelPredecessor": {
|
||||
"patchId": "device-edge-core-channel-upgrade-v4-20260812-023",
|
||||
"artifactSha256": "c10d5b6b7d55ab239f85b6c8130e34ce9f84985e3b46e6e5534733156c7982fc"
|
||||
},
|
||||
"service": "device-manager",
|
||||
"publicIngress": "reverse-proxy-only",
|
||||
"deviceCoreManagementApi": "file-token-authenticated",
|
||||
"launcherTrust": "file-token-scoped-to-device-core-handoff",
|
||||
"edgeChannel": "preserve-active-v4-core-initiated-pinned-mtls",
|
||||
"edgeChannelIdentity": "reuse-runner-managed-host-local-private-key-public-certificate-export",
|
||||
"edgeChannelEgress": "preserve-dedicated-core-only-bridge-no-host-ingress-public-ipv4-tcp-443-only",
|
||||
"healthGate": "bounded-container-grace+core-contract+persistent-data",
|
||||
"commandTransport": "typed-service-ping-v1",
|
||||
"commandCatalog": "allowlisted-adapter-typed-commands-only",
|
||||
"credentialBoundary": "transient-core-memory-then-single-pinned-mtls-command-envelope-to-edge-never-persisted-never-logged-never-returned",
|
||||
"presentationPersistence": "runner-managed-host-data-bind",
|
||||
"presentationDataHostPath": "/volume1/docker/nodedc-device-plane/data/device-manager",
|
||||
"presentationDataContainerPath": "/var/lib/nodedc-device-manager",
|
||||
"presentationDataOwnership": "uid-1000-gid-1000-mode-0750",
|
||||
"presentationDataLifecycle": "preserve-across-manager-recreate-and-source-rollback",
|
||||
"presentationPath": "/var/lib/nodedc-device-manager/device-manager-presentation.json",
|
||||
"mediaRoot": "/var/lib/nodedc-device-manager/media",
|
||||
"defaultAccentHex": "#f5f5f5",
|
||||
"overviewLayout": "mission-core-landing-stage-v1",
|
||||
"faviconSet": "nodedc-adaptive-v1",
|
||||
"commandFormLayout": "aligned-control-row-v1",
|
||||
"secondaryEmptyTypography": "help-text-sm-v1",
|
||||
"infrastructureHostProjection": "ontology-backed-host-runtime-v1",
|
||||
"ontologyFoundation": "ontology-core-device-foundation-20260822-001",
|
||||
"ontologyCatalogHash": "229c61c02a790906",
|
||||
"assetBinding": "temporal-device-asset-binding-v1",
|
||||
"infrastructureRuntime": "host-endpoint-deployment-service-instance-v1",
|
||||
"healthEvidence": "ttl-observation-missing-not-unhealthy-v1",
|
||||
"designSystem": "nodedc-canonical-components-and-tokens-v1",
|
||||
"missionCoreReference": "compute-modules-workspace-71c8b04",
|
||||
"infrastructureWorkspaceLayout": "mission-core-system-workspace-v1",
|
||||
"hostInventoryComposition": "mission-core-compute-host-list-v1",
|
||||
"telemetryWorkspace": "mission-core-compute-module-adaptive-window-v3",
|
||||
"telemetrySurface": "borderless-soft-surface-v1",
|
||||
"telemetryStatus": "mission-core-dot-status-v1",
|
||||
"telemetryNavigation": "full-workspace-back-navigation-v1",
|
||||
"telemetryScroll": "reset-on-workspace-transition-v1",
|
||||
"telemetryPollInterval": "three-seconds",
|
||||
"telemetryFreshness": "fifteen-seconds-missing-stale-not-unhealthy",
|
||||
"telemetryOntologyProjection": "observation-observed-property-provenance-freshness-v1",
|
||||
"telemetryAgent": "telegraf-host-observer-v1",
|
||||
"telemetryGraphScale": "adaptive-observed-window-explicit-domain-v1",
|
||||
"telemetryCpuMinimumSpan": "five-percentage-points",
|
||||
"telemetryMemoryMinimumSpan": "four-percentage-points",
|
||||
"telemetryNetworkMissingSemantics": "missing-counters-never-zero-v1",
|
||||
"interactiveShell": "disabled-pending-managed-session-boundary",
|
||||
"gelios": "untouched-legacy-only",
|
||||
"rollback": "restore-preapply-snapshot-preserve-manager-data"
|
||||
}
|
||||
@@ -0,0 +1,74 @@
|
||||
{
|
||||
"schemaVersion": "nodedc.device-plane.device-manager-release.v13",
|
||||
"releaseId": "__PATCH_ID__",
|
||||
"action": "upgrade",
|
||||
"predecessor": {
|
||||
"kind": "release",
|
||||
"patchId": "device-manager-release-v12-20260823-050",
|
||||
"artifactSha256": "1a49839140e5f2e49763d78f24ee47d946e244bcfde15a9c38266e8bd14c0d49"
|
||||
},
|
||||
"controlCorePredecessor": {
|
||||
"patchId": "device-control-core-release-v4-20260823-047",
|
||||
"artifactSha256": "4aecceeb8d400fdd3dbec8fc86b151691f389d165e72677f396f8994823b6b5c"
|
||||
},
|
||||
"edgeChannelPredecessor": {
|
||||
"patchId": "device-edge-core-channel-upgrade-v4-20260812-023",
|
||||
"artifactSha256": "c10d5b6b7d55ab239f85b6c8130e34ce9f84985e3b46e6e5534733156c7982fc"
|
||||
},
|
||||
"service": "device-manager",
|
||||
"publicIngress": "reverse-proxy-only",
|
||||
"deviceCoreManagementApi": "file-token-authenticated",
|
||||
"launcherTrust": "file-token-scoped-to-device-core-handoff",
|
||||
"edgeChannel": "preserve-active-v4-core-initiated-pinned-mtls",
|
||||
"edgeChannelIdentity": "reuse-runner-managed-host-local-private-key-public-certificate-export",
|
||||
"edgeChannelEgress": "preserve-dedicated-core-only-bridge-no-host-ingress-public-ipv4-tcp-443-only",
|
||||
"healthGate": "bounded-container-grace+core-contract+persistent-data",
|
||||
"commandTransport": "typed-service-ping-v1",
|
||||
"commandCatalog": "allowlisted-adapter-typed-commands-only",
|
||||
"credentialBoundary": "transient-core-memory-then-single-pinned-mtls-command-envelope-to-edge-never-persisted-never-logged-never-returned",
|
||||
"presentationPersistence": "runner-managed-host-data-bind",
|
||||
"presentationDataHostPath": "/volume1/docker/nodedc-device-plane/data/device-manager",
|
||||
"presentationDataContainerPath": "/var/lib/nodedc-device-manager",
|
||||
"presentationDataOwnership": "uid-1000-gid-1000-mode-0750",
|
||||
"presentationDataLifecycle": "preserve-across-manager-recreate-and-source-rollback",
|
||||
"presentationPath": "/var/lib/nodedc-device-manager/device-manager-presentation.json",
|
||||
"mediaRoot": "/var/lib/nodedc-device-manager/media",
|
||||
"defaultAccentHex": "#f5f5f5",
|
||||
"overviewLayout": "mission-core-landing-stage-v1",
|
||||
"faviconSet": "nodedc-adaptive-v1",
|
||||
"commandFormLayout": "aligned-control-row-v1",
|
||||
"secondaryEmptyTypography": "help-text-sm-v1",
|
||||
"infrastructureHostProjection": "ontology-backed-host-runtime-v1",
|
||||
"ontologyFoundation": "ontology-core-device-foundation-20260822-001",
|
||||
"ontologyCatalogHash": "229c61c02a790906",
|
||||
"assetBinding": "temporal-device-asset-binding-v1",
|
||||
"infrastructureRuntime": "host-endpoint-deployment-service-instance-v1",
|
||||
"healthEvidence": "ttl-observation-missing-not-unhealthy-v1",
|
||||
"designSystem": "nodedc-canonical-components-and-tokens-v1",
|
||||
"missionCoreReference": "compute-modules-workspace-71c8b04",
|
||||
"infrastructureWorkspaceLayout": "mission-core-system-workspace-v2",
|
||||
"hostInventoryComposition": "mission-core-compute-host-accordion-v2",
|
||||
"hostInventoryOverviewSurface": "separate-summary-soft-surface-v1",
|
||||
"hostInventoryCollectionSurface": "separate-host-collection-soft-surface-v1",
|
||||
"hostInventoryRow": "compact-centered-accordion-v1",
|
||||
"hostInventoryFreshness": "dot-only-v1",
|
||||
"hostInventoryRelations": "host-scoped-endpoint-deployment-service-v1",
|
||||
"hostInventoryDefaultExpansion": "collapsed",
|
||||
"hostInventoryScaleTarget": "five-hundred-collapsed-rows-v1",
|
||||
"telemetryWorkspace": "mission-core-compute-module-adaptive-window-v3",
|
||||
"telemetrySurface": "borderless-soft-surface-v1",
|
||||
"telemetryStatus": "mission-core-dot-status-v1",
|
||||
"telemetryNavigation": "full-workspace-back-navigation-v1",
|
||||
"telemetryScroll": "reset-on-workspace-transition-v1",
|
||||
"telemetryPollInterval": "three-seconds",
|
||||
"telemetryFreshness": "fifteen-seconds-missing-stale-not-unhealthy",
|
||||
"telemetryOntologyProjection": "observation-observed-property-provenance-freshness-v1",
|
||||
"telemetryAgent": "telegraf-host-observer-v1",
|
||||
"telemetryGraphScale": "adaptive-observed-window-explicit-domain-v1",
|
||||
"telemetryCpuMinimumSpan": "five-percentage-points",
|
||||
"telemetryMemoryMinimumSpan": "four-percentage-points",
|
||||
"telemetryNetworkMissingSemantics": "missing-counters-never-zero-v1",
|
||||
"interactiveShell": "disabled-pending-managed-session-boundary",
|
||||
"gelios": "untouched-legacy-only",
|
||||
"rollback": "restore-preapply-snapshot-preserve-manager-data"
|
||||
}
|
||||
Reference in New Issue
Block a user