From c8f2c9a170c75069198644ddf5a584b2612aabc4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=B0=E6=9C=94?= <565183519@qq.com> Date: Fri, 7 Aug 2026 23:34:08 +0800 Subject: [PATCH] Record Xiaoxin education node deployment receipt --- deployment/navigation-maps/XX-GZ-001.json | 14 ++++--- deployment/nodes/XX-GZ-001.json | 4 +- .../XX-GZ-001-DEPLOYMENT-20260807.json | 38 +++++++++++++++++++ routing/public-navigation-anchor.json | 4 +- routing/server-node-map.json | 5 ++- 5 files changed, 54 insertions(+), 11 deletions(-) create mode 100644 deployment/receipts/XX-GZ-001-DEPLOYMENT-20260807.json diff --git a/deployment/navigation-maps/XX-GZ-001.json b/deployment/navigation-maps/XX-GZ-001.json index 352b4a1..1bc2842 100644 --- a/deployment/navigation-maps/XX-GZ-001.json +++ b/deployment/navigation-maps/XX-GZ-001.json @@ -9,23 +9,23 @@ { "code": "XX-EDU-01", "name": "光湖高中项目师训运营工作空间", - "bind": "deployment-pending", + "bind": "127.0.0.1:3902", "owner": "guanghu/systemd", - "state": "REGISTERED_DEPLOYMENT_PENDING" + "state": "DEPLOYED_ISOLATED_CANDIDATE" }, { "code": "XX-CC-01", "name": "光湖代码频道候选数据面", - "bind": "loopback-only-until-explicit-cutover", + "bind": "127.0.0.1:3901", "owner": "guanghu/systemd", - "state": "REGISTERED_OFFLINE_PACKAGE_PENDING" + "state": "DEPLOYED_ISOLATED_CANDIDATE" }, { "code": "XX-GATE-01", "name": "光湖制品来源与更新权门禁", "bind": "local-policy", "owner": "root", - "state": "REGISTERED" + "state": "ACTIVE_VERIFIED" } ], "mandatory_order": [ @@ -44,5 +44,7 @@ "production-cutover-without-explicit-receipt", "reuse-jd-fd-primary-identity-or-authority", "private-key-on-server" - ] + ], + "deployment_receipt": "deployment/receipts/XX-GZ-001-DEPLOYMENT-20260807.json", + "public_cutover": false } diff --git a/deployment/nodes/XX-GZ-001.json b/deployment/nodes/XX-GZ-001.json index 88ef06d..23f7afa 100644 --- a/deployment/nodes/XX-GZ-001.json +++ b/deployment/nodes/XX-GZ-001.json @@ -30,5 +30,7 @@ "automatic-open-source-updates" ] }, - "status": "registered-deployment-pending" + "status": "deployed-isolated-candidate", + "deployment_receipt": "deployment/receipts/XX-GZ-001-DEPLOYMENT-20260807.json", + "public_cutover": false } diff --git a/deployment/receipts/XX-GZ-001-DEPLOYMENT-20260807.json b/deployment/receipts/XX-GZ-001-DEPLOYMENT-20260807.json new file mode 100644 index 0000000..3e5f5f7 --- /dev/null +++ b/deployment/receipts/XX-GZ-001-DEPLOYMENT-20260807.json @@ -0,0 +1,38 @@ +{ + "schema": "guanghu.education-node-deployment-receipt/v1", + "receipt_id": "XX-GZ-001-DEPLOYMENT-20260807", + "node_id": "XX-GZ-001", + "human_controller": "小新", + "observed_at": "2026-08-07T15:31:48Z", + "deployment_mode": "ISOLATED_LOOPBACK_CANDIDATE", + "education_service": { + "bind": "127.0.0.1:3902", + "state": "PASS_100" + }, + "code_channel_service": { + "bind": "127.0.0.1:3901", + "state": "PASS_100" + }, + "fifth_domain_link": { + "upstream": "JD-FD-PRIMARY", + "anchor_id": "GLW-PUBLIC-NAV-ANCHOR-001", + "language_path": "LL-CMPN-0001", + "world_node": "SYS-GLW-0001", + "state": "PASS_100" + }, + "source_code_on_server": false, + "open_source_upstream_sync": false, + "open_source_automatic_updates": false, + "public_cutover": false, + "app_manifest_sha256": "42a7d1ef1d8bea34ec9041f9f61945e8960490cc940dfb4fc35c33f6d0e16ac1", + "forgejo_binary_sha256": "7a4c568136650c10498a9d3d62c7fd630a0cf09c166293ebd78708248f6398fc", + "guanghu_code_channel_bundle_sha256": "fc53740259d108128e69f5a809cec438ecf3158175617574ba55b8612c5eaa6c", + "base_archive_sha256": "19724ee418589e5f3d24e0bb3a881973e8c7e77f9bcc4ed94251ce8655e6673c", + "server_receipt_path": "/var/lib/guanghu/receipts/XX-GZ-001/DEPLOYMENT-20260807.json", + "rollback": { + "education": "systemctl disable --now guanghu-education.service", + "code_channel": "systemctl disable --now guanghu-code-channel.service", + "protocol_timer": "systemctl disable --now guanghu-fifth-domain-link.timer" + }, + "state": "PASS_100" +} diff --git a/routing/public-navigation-anchor.json b/routing/public-navigation-anchor.json index ed647d1..168d573 100644 --- a/routing/public-navigation-anchor.json +++ b/routing/public-navigation-anchor.json @@ -1,7 +1,7 @@ { "schema": "guanghu.public-navigation-anchor/v1", "anchor_id": "GLW-PUBLIC-NAV-ANCHOR-001", - "version": "2026-08-07.4", + "version": "2026-08-07.5", "state": "CURRENT_CANONICAL", "repository_id": "REPO-012", "branch": "main", @@ -24,7 +24,7 @@ "nodes": { "path": "routing/server-node-map.json", "id": "FD-NODE-MAP-001", - "version": "2026-08-07.4" + "version": "2026-08-07.5" }, "subjects": { "path": "identity/fifth-domain-subject-registry.json", diff --git a/routing/server-node-map.json b/routing/server-node-map.json index 8b5ab83..f10577f 100644 --- a/routing/server-node-map.json +++ b/routing/server-node-map.json @@ -1,7 +1,7 @@ { "schema": "guanghu.server-node-map/v1", "map_id": "FD-NODE-MAP-001", - "version": "2026-08-07.4", + "version": "2026-08-07.5", "published_by": "REPO-012", "subject_alias_map": "identity/subject-id-alias-map.json", "canonical_api": "https://guanghulab.com/api/ai/v1/nodes", @@ -43,12 +43,13 @@ "name_zh": "小新教育行业节点", "region": "CN-GUANGZHOU", "role": "小新责任主体名下的高中项目师训运营应用节点;承载教育工作空间、光湖代码频道候选数据面和协议接入端,不承载冰朔私人第五域主控本体", - "state": "REGISTERED_DEPLOYMENT_PENDING", + "state": "DEPLOYED_ISOLATED_CANDIDATE", "navigation_map": "deployment/navigation-maps/XX-GZ-001.json", "upstream": "JD-FD-PRIMARY", "human_controller": "小新", "source_policy": "COMPILED_ARTIFACTS_ONLY_NO_APPLICATION_SOURCE", "update_policy": "GUANGHU_CONTROLLED_RELEASES_ONLY_NO_OPEN_SOURCE_UPSTREAM_SYNC", + "deployment_receipt": "deployment/receipts/XX-GZ-001-DEPLOYMENT-20260807.json", "keywords": ["小新服务器", "教育服务器", "高中项目师训", "教育行业节点"] }, {