feat: admit signed mobile sync bridge module
This commit is contained in:
parent
eb7223ea4c
commit
292889f934
21 changed files with 1891 additions and 15 deletions
|
|
@ -0,0 +1,90 @@
|
|||
{
|
||||
"schema": "hololake.mobile-sync.contract/v1",
|
||||
"record_id": "HLP-MOBILE-SYNC-001",
|
||||
"state": "HOLOLAKE_0_5_NUMBERED_DESKTOP_BRIDGE_ACCEPTED",
|
||||
"package": {
|
||||
"official_module_number": "HLP-MOD-OFFICIAL-MOBILE-SYNC-0001",
|
||||
"adapter": "mobile-sync-v1",
|
||||
"registration_class": "OFFICIAL_LIGHTHOUSE",
|
||||
"activation": "SIGNED_PACKAGE_PLUS_EXPLICIT_HUMAN_PERMISSION_CONFIRMATION",
|
||||
"listener_after_activation": "EXPLICIT_HUMAN_ACTION_ONLY"
|
||||
},
|
||||
"numbered_ipc": {
|
||||
"module": "HLP-NIPC-MOD-0030",
|
||||
"target": "HLP-NIPC-TGT-0030",
|
||||
"operations": "HLP-NIPC-OP-0141..HLP-NIPC-OP-0146",
|
||||
"public_tauri_commands": ["numbered_ipc"],
|
||||
"mismatched_coordinate": "FAIL_CLOSED"
|
||||
},
|
||||
"desktop_role": "USER_LOCAL_COMPUTER_TERMINAL_ROOT_NODE",
|
||||
"mobile_role": "REMOTE_BODY_ENTRY_OF_THE_SAME_PERSONA_SYSTEM",
|
||||
"transport": {
|
||||
"implemented": "SAME_LAN_DIRECT_HTTP_WITH_APPLICATION_LAYER_ENCRYPTION",
|
||||
"port_preference": 37421,
|
||||
"remote_internet_direct": "NOT_IMPLEMENTED",
|
||||
"encrypted_relay": "NOT_IMPLEMENTED",
|
||||
"maximum_request_bytes": 262144,
|
||||
"maximum_concurrent_connections": 16,
|
||||
"duplicate_http_header": "REJECT"
|
||||
},
|
||||
"pairing": {
|
||||
"uri_scheme": "hololake://pair",
|
||||
"secret_bits": 256,
|
||||
"ttl_seconds": 600,
|
||||
"single_use": true,
|
||||
"payload_aead": "CHACHA20_POLY1305",
|
||||
"aad": "hololake.mobile.pair/v1"
|
||||
},
|
||||
"session": {
|
||||
"key_bits": 256,
|
||||
"aead": "CHACHA20_POLY1305",
|
||||
"replay_guard": "STRICTLY_INCREASING_PER_DEVICE_COUNTER",
|
||||
"device_revocation": true,
|
||||
"desktop_key_storage": "ACCOUNT_SCOPED_SQLITE",
|
||||
"ios_key_storage": "KEYCHAIN_THIS_DEVICE_ONLY"
|
||||
},
|
||||
"routes": {
|
||||
"GET /v1/status": "NO_PRIVATE_PAYLOAD",
|
||||
"POST /v1/pair": "ONE_TIME_PAIRING_SECRET_REQUIRED",
|
||||
"POST /v1/sync": "PAIRED_DEVICE_AEAD_AND_COUNTER_REQUIRED"
|
||||
},
|
||||
"projection": {
|
||||
"personal_channel": "MINIMUM_COUNTS_AND_INTEGRITY",
|
||||
"web_novel": "WORK_LIST_AND_COUNTS",
|
||||
"education": "COUNTS_ONLY_NO_SENSITIVE_CELL_VALUES",
|
||||
"mobile_capture": "BOUNDED_INBOX_WRITE_ONLY_NO_AUTOMATIC_DOMAIN_MUTATION"
|
||||
},
|
||||
"hard_boundaries": {
|
||||
"remote_desktop_clone": false,
|
||||
"second_persona_system": false,
|
||||
"platform_private_payload_custody": false,
|
||||
"desktop_offline_execution": false,
|
||||
"mobile_capture_mutates_persona_or_industry_data": false,
|
||||
"module_unmount_stops_listener_before_lifecycle_transition": true,
|
||||
"background_frontend_polling": false
|
||||
},
|
||||
"client_scope": {
|
||||
"desktop_bridge": "IN_THIS_ADMISSION",
|
||||
"ios_application_source": "NOT_IN_DECLARED_DONOR_CANDIDATE",
|
||||
"ios_installable_package": "PENDING_SEPARATE_ADMISSION",
|
||||
"claim_real_iphone_end_to_end_accepted": false
|
||||
},
|
||||
"current_acceptance": {
|
||||
"state": "PASS_DESKTOP_BRIDGE_ONLY",
|
||||
"module_package_sha256": "61a9d402c936d7477609bcfa6eb4ad6e83cb6c089ba51b3db09a2d6259185924",
|
||||
"module_package_signature": "PASS_EMBEDDED_PRODUCT_TRUST",
|
||||
"signed_app_binary_sha256": "9be06d6c5dbd4f46f6f925142d633f12b42ee553873c2342f9804bcf39dde7b4",
|
||||
"signed_app_cdhash": "c595cb2a7729d49638faa78f76e145ee9b1da05a",
|
||||
"apple_team_identifier": "825A9L3G7Q",
|
||||
"module_receipts": {
|
||||
"install": "a09496ec6113254f77ea2425d0bd30571e9e0e3df62bfa18e500f860c2f65d4d",
|
||||
"mount": "5b162ee807c8b4d9c8aa8d9cb590c64587f51067dc0804030bf57ed0753ac25a",
|
||||
"self_test_pass": "e66ee868e28a25fcd70cc888845661b5044d18a6e18b70cee6e4839b02fe1c53"
|
||||
},
|
||||
"desktop_listener": "PASS_EXPLICIT_START_REACHABLE_STATUS_AND_EXPLICIT_STOP",
|
||||
"restart_restore": "PASS_ACTIVE_MODULE_RESTORED_LISTENER_OFFLINE",
|
||||
"legacy_account_readback": "PASS_ONE_PAIRED_DEVICE_ONE_ISOLATED_CAPTURE_RETAINED",
|
||||
"live_iphone_pairing_this_cycle": "NOT_CLAIMED",
|
||||
"notarization": "FINAL_RELEASE_CANDIDATE_PENDING"
|
||||
}
|
||||
}
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"schema": "hololake.module-donor-admission-registry/v1",
|
||||
"record_id": "HLP-MODULE-DONOR-ADMISSION-001",
|
||||
"state": "FIVE_CANDIDATES_ADMITTED_REMAINING_DONORS_QUARANTINED",
|
||||
"state": "SIX_CANDIDATES_ADMITTED_REMAINING_DONORS_QUARANTINED",
|
||||
"root_rule": {
|
||||
"official_base": "HOLOLAKE_0.5.0_NUMBERED_IPC_ROOT",
|
||||
"repair_old_application_in_place": false,
|
||||
|
|
@ -151,12 +151,16 @@
|
|||
"admission_order": 6,
|
||||
"candidate_number": "HLP-DONOR-CAND-0006",
|
||||
"name": "mobile_sync",
|
||||
"state": "QUARANTINED_PENDING_ADMISSION",
|
||||
"state": "ADMITTED_INSTALLED_RUNTIME_ACCEPTED",
|
||||
"paths": [
|
||||
"contracts/mobile-sync-v1.json",
|
||||
"src/MobileSyncPanel.tsx",
|
||||
"src-tauri/src/mobile_sync.rs"
|
||||
]
|
||||
],
|
||||
"runtime_module_number": "HLP-MOD-OFFICIAL-MOBILE-SYNC-0001",
|
||||
"numbered_ipc_module": "HLP-NIPC-MOD-0030",
|
||||
"acceptance_evidence": "contracts/mobile-sync-v1.json#current_acceptance",
|
||||
"boundary": "DESKTOP_ROOT_NODE_SAME_LAN_BRIDGE_ONLY; EXPLICIT_LISTENER; IOS_INSTALLABLE_PACKAGE_PENDING_SEPARATE_ADMISSION; NO_SECOND_PERSONA_SYSTEM"
|
||||
},
|
||||
{
|
||||
"admission_order": 7,
|
||||
|
|
|
|||
|
|
@ -71,7 +71,12 @@
|
|||
"import_education_tables_from_dialog",
|
||||
"get_education_recognition_capability",
|
||||
"get_web_novel_workspace_snapshot",
|
||||
"inspect_web_novel_document_from_dialog"
|
||||
"inspect_web_novel_document_from_dialog",
|
||||
"start_mobile_sync",
|
||||
"get_mobile_sync_status",
|
||||
"rotate_mobile_pairing",
|
||||
"stop_mobile_sync",
|
||||
"get_mobile_sync_snapshot"
|
||||
],
|
||||
"input_wrapper_aliases": [
|
||||
"confirm_hololake_update_install",
|
||||
|
|
@ -169,7 +174,8 @@
|
|||
"upsert_web_novel_timeline_event",
|
||||
"link_web_novel_scene_entity",
|
||||
"restore_web_novel_chapter_version",
|
||||
"export_web_novel_author_delivery"
|
||||
"export_web_novel_author_delivery",
|
||||
"revoke_mobile_sync_device"
|
||||
],
|
||||
"direct_field_aliases": {
|
||||
"perform_code_repo_login": [
|
||||
|
|
@ -361,6 +367,11 @@
|
|||
"module_number": "HLP-NIPC-MOD-0029",
|
||||
"target_number": "HLP-NIPC-TGT-0029",
|
||||
"internal_name": "web_novel_delivery"
|
||||
},
|
||||
{
|
||||
"module_number": "HLP-NIPC-MOD-0030",
|
||||
"target_number": "HLP-NIPC-TGT-0030",
|
||||
"internal_name": "mobile_sync"
|
||||
}
|
||||
],
|
||||
"operations": [
|
||||
|
|
@ -1903,6 +1914,72 @@
|
|||
"admission": "VERIFIED_HUMAN_ROUTE",
|
||||
"effect": "STATE_CHANGE",
|
||||
"payload_schema": "hololake.numbered-ipc.payload/export_web_novel_author_delivery/v1"
|
||||
},
|
||||
{
|
||||
"operation_number": "HLP-NIPC-OP-0141",
|
||||
"alias": "start_mobile_sync",
|
||||
"handler": "mobile_sync::start_mobile_sync",
|
||||
"channel_number": "HLP-NIPC-CH-0002",
|
||||
"module_number": "HLP-NIPC-MOD-0030",
|
||||
"target_number": "HLP-NIPC-TGT-0030",
|
||||
"admission": "VERIFIED_HUMAN_ROUTE",
|
||||
"effect": "STATE_CHANGE",
|
||||
"payload_schema": "hololake.numbered-ipc.payload/start_mobile_sync/v1"
|
||||
},
|
||||
{
|
||||
"operation_number": "HLP-NIPC-OP-0142",
|
||||
"alias": "get_mobile_sync_status",
|
||||
"handler": "mobile_sync::get_mobile_sync_status",
|
||||
"channel_number": "HLP-NIPC-CH-0002",
|
||||
"module_number": "HLP-NIPC-MOD-0030",
|
||||
"target_number": "HLP-NIPC-TGT-0030",
|
||||
"admission": "VERIFIED_HUMAN_ROUTE",
|
||||
"effect": "READ_OR_STATUS",
|
||||
"payload_schema": "hololake.numbered-ipc.payload/get_mobile_sync_status/v1"
|
||||
},
|
||||
{
|
||||
"operation_number": "HLP-NIPC-OP-0143",
|
||||
"alias": "rotate_mobile_pairing",
|
||||
"handler": "mobile_sync::rotate_mobile_pairing",
|
||||
"channel_number": "HLP-NIPC-CH-0002",
|
||||
"module_number": "HLP-NIPC-MOD-0030",
|
||||
"target_number": "HLP-NIPC-TGT-0030",
|
||||
"admission": "VERIFIED_HUMAN_ROUTE",
|
||||
"effect": "STATE_CHANGE",
|
||||
"payload_schema": "hololake.numbered-ipc.payload/rotate_mobile_pairing/v1"
|
||||
},
|
||||
{
|
||||
"operation_number": "HLP-NIPC-OP-0144",
|
||||
"alias": "stop_mobile_sync",
|
||||
"handler": "mobile_sync::stop_mobile_sync",
|
||||
"channel_number": "HLP-NIPC-CH-0002",
|
||||
"module_number": "HLP-NIPC-MOD-0030",
|
||||
"target_number": "HLP-NIPC-TGT-0030",
|
||||
"admission": "VERIFIED_HUMAN_ROUTE",
|
||||
"effect": "STATE_CHANGE",
|
||||
"payload_schema": "hololake.numbered-ipc.payload/stop_mobile_sync/v1"
|
||||
},
|
||||
{
|
||||
"operation_number": "HLP-NIPC-OP-0145",
|
||||
"alias": "revoke_mobile_sync_device",
|
||||
"handler": "mobile_sync::revoke_mobile_sync_device",
|
||||
"channel_number": "HLP-NIPC-CH-0002",
|
||||
"module_number": "HLP-NIPC-MOD-0030",
|
||||
"target_number": "HLP-NIPC-TGT-0030",
|
||||
"admission": "VERIFIED_HUMAN_ROUTE",
|
||||
"effect": "STATE_CHANGE",
|
||||
"payload_schema": "hololake.numbered-ipc.payload/revoke_mobile_sync_device/v1"
|
||||
},
|
||||
{
|
||||
"operation_number": "HLP-NIPC-OP-0146",
|
||||
"alias": "get_mobile_sync_snapshot",
|
||||
"handler": "mobile_sync::get_mobile_sync_snapshot",
|
||||
"channel_number": "HLP-NIPC-CH-0002",
|
||||
"module_number": "HLP-NIPC-MOD-0030",
|
||||
"target_number": "HLP-NIPC-TGT-0030",
|
||||
"admission": "VERIFIED_HUMAN_ROUTE",
|
||||
"effect": "READ_OR_STATUS",
|
||||
"payload_schema": "hololake.numbered-ipc.payload/get_mobile_sync_snapshot/v1"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue