Files
multi-simadmin/packages/operation-registry/src/upstream-58e2204.ts
T

3498 lines
141 KiB
TypeScript

import { structuredEvidence58e2204 } from './structured-evidence-58e2204.ts';
import { sensitiveModelEvidence58e2204 } from './sensitive-evidence-58e2204.ts';
/** Frozen static-contract OperationRegistry audited at upstream commit 58e2204. */
const rawUpstream58e2204Operations = [
{
"operationId": "getDevice",
"method": "GET",
"pathTemplate": "/api/device",
"handler": "get_device_info",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:1076-1090",
"responseSchemaEvidence": "ApiResponse<DeviceInfoResponse> success payload/error envelope; success/error payload evidenced by ApiResponse<DeviceInfoResponse>; exact handler backend/src/handlers.rs:1076-1090",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "overview",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:506-506",
"backend/src/handlers.rs:1076-1090",
"bruno-api/get_device_info.bru:8"
],
"upstreamDomain": "device-system",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getSim",
"method": "GET",
"pathTemplate": "/api/sim",
"handler": "get_sim_info",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:1126-1145",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<SimInfoResponse>; exact handler backend/src/handlers.rs:1126-1145",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "overview",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:508-508",
"backend/src/handlers.rs:1126-1145",
"bruno-api/get_sim_info.bru:8"
],
"upstreamDomain": "sim",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postSimDetailsRefresh",
"method": "POST",
"pathTemplate": "/api/sim/details/refresh",
"handler": "refresh_sim_details_handler",
"capability": "command",
"riskLevel": "R1",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:1148-1164",
"responseSchemaEvidence": "dynamic-json construction in exact handler backend/src/handlers.rs:1148-1164; field shape is implementation evidence only",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "non-idempotent",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "overview",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:510-511",
"backend/src/handlers.rs:1148-1164"
],
"upstreamDomain": "sim",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postSimCache",
"method": "POST",
"pathTemplate": "/api/sim/cache",
"handler": "update_sim_cache_handler",
"capability": "command",
"riskLevel": "R1",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor UpdateSimCacheRequest fields [phone_number:Option<String>, sms_center:Option<String>] (models.rs:1036); exact handler backend/src/handlers.rs:1167-1213",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:1167-1213",
"requestContentType": "application/json",
"timeoutMs": 10000,
"idempotency": "conditional",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "overview",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:514-515",
"backend/src/handlers.rs:1167-1213"
],
"upstreamDomain": "sim",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getNetwork",
"method": "GET",
"pathTemplate": "/api/network",
"handler": "get_network_info",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:1218-1232",
"responseSchemaEvidence": "ApiResponse<NetworkInfoResponse> success payload/error envelope; success/error payload evidenced by ApiResponse<NetworkInfoResponse>; exact handler backend/src/handlers.rs:1218-1232",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "cellular",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:519-520",
"backend/src/handlers.rs:1218-1232",
"bruno-api/get_network_info.bru:8"
],
"upstreamDomain": "cellular",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getCells",
"method": "GET",
"pathTemplate": "/api/cells",
"handler": "get_cells",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:1235-1249",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<CellsResponse>; exact handler backend/src/handlers.rs:1235-1249",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "cellular",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:522-522",
"backend/src/handlers.rs:1235-1249",
"bruno-api/get_cells_info.bru:8"
],
"upstreamDomain": "cellular",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postCellMonitorStart",
"method": "POST",
"pathTemplate": "/api/cell-monitor/start",
"handler": "start_cell_monitor_handler",
"capability": "command",
"riskLevel": "R1",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:1252-1282",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:1252-1282",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "conditional",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "cellular",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:524-525",
"backend/src/handlers.rs:1252-1282"
],
"upstreamDomain": "cellular",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postCellMonitorStop",
"method": "POST",
"pathTemplate": "/api/cell-monitor/stop",
"handler": "stop_cell_monitor_handler",
"capability": "command",
"riskLevel": "R1",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:1285-1312",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:1285-1312",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "conditional",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "cellular",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:528-529",
"backend/src/handlers.rs:1285-1312"
],
"upstreamDomain": "cellular",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getRadioMode",
"method": "GET",
"pathTemplate": "/api/radio-mode",
"handler": "get_radio_mode_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:1315-1329",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<RadioModeResponse>; exact handler backend/src/handlers.rs:1315-1329",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "cellular",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:532-533",
"backend/src/handlers.rs:1315-1329",
"bruno-api/get_radio_mode.bru:8"
],
"upstreamDomain": "radio-lock",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postRadioMode",
"method": "POST",
"pathTemplate": "/api/radio-mode",
"handler": "set_radio_mode_handler",
"capability": "command",
"riskLevel": "R1",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor RadioModeRequest fields [mode:RadioMode] (models.rs:351); exact handler backend/src/handlers.rs:1332-1352",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:1332-1352",
"requestContentType": "application/json",
"timeoutMs": 30000,
"idempotency": "conditional",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "cellular",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:532-534",
"backend/src/handlers.rs:1332-1352",
"bruno-api/set_radio_mode_nr.bru:8",
"bruno-api/set_radio_mode_lte.bru:8",
"bruno-api/set_radio_mode_auto.bru:8"
],
"upstreamDomain": "radio-lock",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getBandLock",
"method": "GET",
"pathTemplate": "/api/band-lock",
"handler": "get_band_lock_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:1355-1369",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<BandLockStatus>; exact handler backend/src/handlers.rs:1355-1369",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "cellular",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:538-539",
"backend/src/handlers.rs:1355-1369",
"bruno-api/get_band_lock.bru:8"
],
"upstreamDomain": "radio-lock",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postBandLock",
"method": "POST",
"pathTemplate": "/api/band-lock",
"handler": "set_band_lock_handler",
"capability": "job",
"riskLevel": "R2",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor BandLockRequest fields [lte_fdd_bands:Vec<u32>, lte_tdd_bands:Vec<u32>, nr_fdd_bands:Vec<u32>, nr_tdd_bands:Vec<u32>] (models.rs:377); exact handler backend/src/handlers.rs:1372-1392",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:1372-1392",
"requestContentType": "application/json",
"timeoutMs": 30000,
"idempotency": "conditional",
"confirmationPolicy": "explicit",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "cellular",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:538-540",
"backend/src/handlers.rs:1372-1392",
"bruno-api/set_band_lock_nr_n78.bru:8",
"bruno-api/set_band_lock_lte_b1_b3.bru:8",
"bruno-api/unlock_all_bands.bru:8",
"bruno-api/set_band_lock_lte_nr_mix.bru:8"
],
"upstreamDomain": "radio-lock",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getNetworkInterfaces",
"method": "GET",
"pathTemplate": "/api/network/interfaces",
"handler": "get_network_interfaces_info",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:1619-1644",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<NetworkInterfacesResponse>; exact handler backend/src/handlers.rs:1619-1644",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "device-network",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:544-545",
"backend/src/handlers.rs:1619-1644",
"bruno-api/get_network_interfaces.bru:8"
],
"upstreamDomain": "device-network",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getNetworkConnectionAddresses",
"method": "GET",
"pathTemplate": "/api/network/connection-addresses",
"handler": "get_network_connection_addresses",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:1647-1666",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<ConnectionAddressesResponse>; exact handler backend/src/handlers.rs:1647-1666",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "device-network",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:548-549",
"backend/src/handlers.rs:1647-1666"
],
"upstreamDomain": "device-network",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getDeviceNetworkDdnsConfig",
"method": "GET",
"pathTemplate": "/api/device-network/ddns/config",
"handler": "get_device_ddns_config_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:1669-1679",
"responseSchemaEvidence": "dynamic-json construction in exact handler backend/src/handlers.rs:1669-1679; field shape is implementation evidence only",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [
"$.response.data.access_id",
"$.response.data.access_secret"
],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "device-network",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:552-553",
"backend/src/handlers.rs:1669-1679",
"bruno-api/get_device_ddns_config.bru:8"
],
"upstreamDomain": "device-network",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postDeviceNetworkDdnsConfig",
"method": "POST",
"pathTemplate": "/api/device-network/ddns/config",
"handler": "set_device_ddns_config_handler",
"capability": "job",
"riskLevel": "R2",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor crate::config::DdnsConfig fields [enabled:bool, provider:String, access_id:String, access_secret:String, interval_seconds:u64, ttl:u32, ipv4:DdnsIpConfig, ipv6:DdnsIpConfig] (config.rs:634); exact handler backend/src/handlers.rs:1682-1721",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:1682-1721",
"requestContentType": "application/json",
"timeoutMs": 30000,
"idempotency": "conditional",
"confirmationPolicy": "explicit",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [
"$.body.access_id",
"$.body.access_secret"
],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "device-network",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:552-554",
"backend/src/handlers.rs:1682-1721",
"bruno-api/set_device_ddns_config.bru:8"
],
"upstreamDomain": "device-network",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getDeviceNetworkDdnsStatus",
"method": "GET",
"pathTemplate": "/api/device-network/ddns/status",
"handler": "get_device_ddns_status_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:1750-1757",
"responseSchemaEvidence": "dynamic-json construction in exact handler backend/src/handlers.rs:1750-1757; field shape is implementation evidence only",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "device-network",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:558-559",
"backend/src/handlers.rs:1750-1757",
"bruno-api/get_device_ddns_status.bru:8"
],
"upstreamDomain": "device-network",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postDeviceNetworkDdnsSync",
"method": "POST",
"pathTemplate": "/api/device-network/ddns/sync",
"handler": "sync_device_ddns_handler",
"capability": "command",
"riskLevel": "R1",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:1760-1781",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<DdnsSyncResponse>; exact handler backend/src/handlers.rs:1760-1781",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "conditional",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "device-network",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:562-563",
"backend/src/handlers.rs:1760-1781",
"bruno-api/post_device_ddns_sync.bru:8"
],
"upstreamDomain": "device-network",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getDeviceNetworkDdnsLogs",
"method": "GET",
"pathTemplate": "/api/device-network/ddns/logs",
"handler": "get_device_ddns_logs_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:1784-1790",
"responseSchemaEvidence": "dynamic-json construction in exact handler backend/src/handlers.rs:1784-1790; field shape is implementation evidence only",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "device-network",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:566-567",
"backend/src/handlers.rs:1784-1790",
"bruno-api/get_device_ddns_logs.bru:8"
],
"upstreamDomain": "device-network",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postDeviceNetworkDdnsLogsClear",
"method": "POST",
"pathTemplate": "/api/device-network/ddns/logs/clear",
"handler": "clear_device_ddns_logs_handler",
"capability": "job",
"riskLevel": "R2",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:1793-1802",
"responseSchemaEvidence": "dynamic-json construction in exact handler backend/src/handlers.rs:1793-1802; field shape is implementation evidence only",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "conditional",
"confirmationPolicy": "explicit",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "device-network",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:570-571",
"backend/src/handlers.rs:1793-1802",
"bruno-api/post_device_ddns_logs_clear.bru:8"
],
"upstreamDomain": "device-network",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getDeviceNetworkWlanStatus",
"method": "GET",
"pathTemplate": "/api/device-network/wlan/status",
"handler": "get_device_wlan_status_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:1805-1819",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<WlanStatusResponse>; exact handler backend/src/handlers.rs:1805-1819",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [
"$.response.data.ssid"
],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "device-network",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:574-575",
"backend/src/handlers.rs:1805-1819",
"bruno-api/get_device_wlan_status.bru:8"
],
"upstreamDomain": "device-network",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postDeviceNetworkWlanEnabled",
"method": "POST",
"pathTemplate": "/api/device-network/wlan/enabled",
"handler": "set_device_wlan_enabled_handler",
"capability": "command",
"riskLevel": "R1",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor WlanEnabledRequest fields [enabled:bool] (models.rs:606); exact handler backend/src/handlers.rs:1822-1841",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<WlanStatusResponse>; exact handler backend/src/handlers.rs:1822-1841",
"requestContentType": "application/json",
"timeoutMs": 30000,
"idempotency": "conditional",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "device-network",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:578-579",
"backend/src/handlers.rs:1822-1841",
"bruno-api/set_device_wlan_enabled.bru:8"
],
"upstreamDomain": "device-network",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postDeviceNetworkWlanScan",
"method": "POST",
"pathTemplate": "/api/device-network/wlan/scan",
"handler": "scan_device_wlan_handler",
"capability": "command",
"riskLevel": "R1",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:1844-1858",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<WlanScanResponse>; exact handler backend/src/handlers.rs:1844-1858",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "non-idempotent",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "device-network",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:582-583",
"backend/src/handlers.rs:1844-1858",
"bruno-api/post_device_wlan_scan.bru:8"
],
"upstreamDomain": "device-network",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getDeviceNetworkWlanProfiles",
"method": "GET",
"pathTemplate": "/api/device-network/wlan/profiles",
"handler": "get_device_wlan_profiles_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:1861-1875",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<WlanProfilesResponse>; exact handler backend/src/handlers.rs:1861-1875",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [
"$.response.data[*].ssid"
],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "device-network",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:586-587",
"backend/src/handlers.rs:1861-1875",
"bruno-api/get_device_wlan_profiles.bru:8"
],
"upstreamDomain": "device-network",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postDeviceNetworkWlanForget",
"method": "POST",
"pathTemplate": "/api/device-network/wlan/forget",
"handler": "forget_device_wlan_handler",
"capability": "job",
"riskLevel": "R2",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor WlanForgetRequest fields [uuid:String, connection_id:String] (models.rs:635); exact handler backend/src/handlers.rs:1878-1897",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<WlanProfilesResponse>; exact handler backend/src/handlers.rs:1878-1897",
"requestContentType": "application/json",
"timeoutMs": 30000,
"idempotency": "conditional",
"confirmationPolicy": "explicit",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "device-network",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:590-591",
"backend/src/handlers.rs:1878-1897",
"bruno-api/post_device_wlan_forget.bru:8"
],
"upstreamDomain": "device-network",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postDeviceNetworkWlanConnect",
"method": "POST",
"pathTemplate": "/api/device-network/wlan/connect",
"handler": "connect_device_wlan_handler",
"capability": "command",
"riskLevel": "R1",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor WlanConnectRequest fields [ssid:String, password:String, auto_join:bool] (models.rs:611); exact handler backend/src/handlers.rs:1900-1955",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<WlanStatusResponse>; exact handler backend/src/handlers.rs:1900-1955",
"requestContentType": "application/json",
"timeoutMs": 30000,
"idempotency": "non-idempotent",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [
"$.body.ssid",
"$.body.password"
],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "device-network",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:594-595",
"backend/src/handlers.rs:1900-1955",
"bruno-api/post_device_wlan_connect.bru:8"
],
"upstreamDomain": "device-network",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postDeviceNetworkWlanDisconnect",
"method": "POST",
"pathTemplate": "/api/device-network/wlan/disconnect",
"handler": "disconnect_device_wlan_handler",
"capability": "command",
"riskLevel": "R1",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:1958-1991",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<WlanStatusResponse>; exact handler backend/src/handlers.rs:1958-1991",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "non-idempotent",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "device-network",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:598-599",
"backend/src/handlers.rs:1958-1991",
"bruno-api/post_device_wlan_disconnect.bru:8"
],
"upstreamDomain": "device-network",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postDeviceNetworkWlanProfile",
"method": "POST",
"pathTemplate": "/api/device-network/wlan/profile",
"handler": "save_device_wlan_profile_handler",
"capability": "command",
"riskLevel": "R1",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor WlanProfileRequest fields [connection_id:String, auto_join:Option<bool>, ipv4_mode:Option<String>, ipv4_address:Option<String>, ipv4_prefix:Option<u8>, ipv4_gateway:Option<String>] (models.rs:620); exact handler backend/src/handlers.rs:1994-2013",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<WlanStatusResponse>; exact handler backend/src/handlers.rs:1994-2013",
"requestContentType": "application/json",
"timeoutMs": 30000,
"idempotency": "conditional",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [
"$.body.credentials"
],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "device-network",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:602-603",
"backend/src/handlers.rs:1994-2013",
"bruno-api/post_device_wlan_profile.bru:8"
],
"upstreamDomain": "device-network",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getNetworkSignalStrength",
"method": "GET",
"pathTemplate": "/api/network/signal-strength",
"handler": "get_signal_strength_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:2016-2030",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<SignalStrengthResponse>; exact handler backend/src/handlers.rs:2016-2030",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "cellular",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:606-607",
"backend/src/handlers.rs:2016-2030",
"bruno-api/get_signal_strength.bru:8"
],
"upstreamDomain": "cellular",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getLocationCellInfo",
"method": "GET",
"pathTemplate": "/api/location/cell-info",
"handler": "get_cell_location_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:1395-1409",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<CellLocationResponse>; exact handler backend/src/handlers.rs:1395-1409",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "cellular",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:610-611",
"backend/src/handlers.rs:1395-1409",
"bruno-api/get_cell_location_info.bru:8"
],
"upstreamDomain": "cellular",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getNetworkOperators",
"method": "GET",
"pathTemplate": "/api/network/operators",
"handler": "get_network_operators",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:1412-1426",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<OperatorListResponse>; exact handler backend/src/handlers.rs:1412-1426",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "cellular",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:614-615",
"backend/src/handlers.rs:1412-1426",
"bruno-api/get_operators.bru:8"
],
"upstreamDomain": "cellular",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getNetworkOperatorsScan",
"method": "GET",
"pathTemplate": "/api/network/operators/scan",
"handler": "scan_network_operators",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:1429-1443",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<OperatorListResponse>; exact handler backend/src/handlers.rs:1429-1443",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "cellular",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:618-619",
"backend/src/handlers.rs:1429-1443",
"bruno-api/scan_operators.bru:8"
],
"upstreamDomain": "cellular",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postNetworkRegisterManual",
"method": "POST",
"pathTemplate": "/api/network/register-manual",
"handler": "register_network_manual",
"capability": "job",
"riskLevel": "R2",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor ManualRegisterRequest fields [mccmnc:String] (models.rs:771); exact handler backend/src/handlers.rs:1446-1466",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:1446-1466",
"requestContentType": "application/json",
"timeoutMs": 30000,
"idempotency": "non-idempotent",
"confirmationPolicy": "explicit",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "cellular",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:622-623",
"backend/src/handlers.rs:1446-1466",
"bruno-api/register_operator_manual.bru:8"
],
"upstreamDomain": "cellular",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postNetworkRegisterAuto",
"method": "POST",
"pathTemplate": "/api/network/register-auto",
"handler": "register_network_auto",
"capability": "job",
"riskLevel": "R2",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:1469-1486",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:1469-1486",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "non-idempotent",
"confirmationPolicy": "explicit",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "cellular",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:626-627",
"backend/src/handlers.rs:1469-1486",
"bruno-api/register_operator_auto.bru:8"
],
"upstreamDomain": "cellular",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getApn",
"method": "GET",
"pathTemplate": "/api/apn",
"handler": "get_apn_list_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:1489-1504",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<ApnListResponse>; exact handler backend/src/handlers.rs:1489-1504",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [
"$.body.username",
"$.body.password"
],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "cellular",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:630-631",
"backend/src/handlers.rs:1489-1504",
"bruno-api/get_apn_list.bru:8"
],
"upstreamDomain": "data-connection",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postApn",
"method": "POST",
"pathTemplate": "/api/apn",
"handler": "set_apn_handler",
"capability": "command",
"riskLevel": "R1",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor SetApnRequest fields [context_path:String, apn:Option<String>, protocol:Option<String>, username:Option<String>, password:Option<String>, auth_method:Option<String>] (models.rs:795); exact handler backend/src/handlers.rs:1507-1571",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:1507-1571",
"requestContentType": "application/json",
"timeoutMs": 30000,
"idempotency": "conditional",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [
"$.body.username",
"$.body.password"
],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "cellular",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:630-632",
"backend/src/handlers.rs:1507-1571",
"bruno-api/set_apn.bru:8"
],
"upstreamDomain": "data-connection",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getCellLock",
"method": "GET",
"pathTemplate": "/api/cell-lock",
"handler": "get_cell_lock_status_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:1574-1582",
"responseSchemaEvidence": "dynamic-json construction in exact handler backend/src/handlers.rs:1574-1582; field shape is implementation evidence only",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "cellular",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:636-637",
"backend/src/handlers.rs:1574-1582",
"bruno-api/get_cell_lock.bru:8"
],
"upstreamDomain": "radio-lock",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postCellLock",
"method": "POST",
"pathTemplate": "/api/cell-lock",
"handler": "set_cell_lock_handler",
"capability": "job",
"riskLevel": "R2",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor CellLockRequest fields [rat:u8, enable:bool, lock_type:u8, pci:Option<u16>, arfcn:Option<u32>] (models.rs:405); exact handler backend/src/handlers.rs:1585-1603",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<CellLockResult>; exact handler backend/src/handlers.rs:1585-1603",
"requestContentType": "application/json",
"timeoutMs": 30000,
"idempotency": "conditional",
"confirmationPolicy": "explicit",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "cellular",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:636-638",
"backend/src/handlers.rs:1585-1603",
"bruno-api/set_cell_lock_lte.bru:8",
"bruno-api/set_cell_lock_nr.bru:8",
"bruno-api/unlock_cell_nr.bru:8"
],
"upstreamDomain": "radio-lock",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postCellLockUnlockAll",
"method": "POST",
"pathTemplate": "/api/cell-lock/unlock-all",
"handler": "unlock_all_cells_handler",
"capability": "job",
"riskLevel": "R2",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:1606-1616",
"responseSchemaEvidence": "dynamic-json construction in exact handler backend/src/handlers.rs:1606-1616; field shape is implementation evidence only",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "conditional",
"confirmationPolicy": "explicit",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "cellular",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:642-643",
"backend/src/handlers.rs:1606-1616",
"bruno-api/unlock_all_cells.bru:8"
],
"upstreamDomain": "radio-lock",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getData",
"method": "GET",
"pathTemplate": "/api/data",
"handler": "get_data_status",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:2035-2062",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<DataConnectionResponse>; exact handler backend/src/handlers.rs:2035-2062",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "cellular",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:647-648",
"backend/src/handlers.rs:2035-2062",
"bruno-api/get_data_status.bru:8"
],
"upstreamDomain": "data-connection",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postData",
"method": "POST",
"pathTemplate": "/api/data",
"handler": "set_data_status",
"capability": "command",
"riskLevel": "R1",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor DataConnectionRequest fields [active:bool] (models.rs:234); exact handler backend/src/handlers.rs:2065-2131",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<DataConnectionResponse>; exact handler backend/src/handlers.rs:2065-2131",
"requestContentType": "application/json",
"timeoutMs": 10000,
"idempotency": "conditional",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "cellular",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:647-649",
"backend/src/handlers.rs:2065-2131",
"bruno-api/set_data_status_disable.bru:8",
"bruno-api/set_data_status_enable.bru:8"
],
"upstreamDomain": "data-connection",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getRoaming",
"method": "GET",
"pathTemplate": "/api/roaming",
"handler": "get_roaming_status_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:2172-2193",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<RoamingResponse>; exact handler backend/src/handlers.rs:2172-2193",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "cellular",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:653-654",
"backend/src/handlers.rs:2172-2193",
"bruno-api/get_roaming_status.bru:8"
],
"upstreamDomain": "data-connection",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postRoaming",
"method": "POST",
"pathTemplate": "/api/roaming",
"handler": "set_roaming_status_handler",
"capability": "command",
"riskLevel": "R1",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor RoamingRequest fields [allowed:bool] (models.rs:244); exact handler backend/src/handlers.rs:2196-2247",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<RoamingResponse>; exact handler backend/src/handlers.rs:2196-2247",
"requestContentType": "application/json",
"timeoutMs": 10000,
"idempotency": "conditional",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "cellular",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:653-655",
"backend/src/handlers.rs:2196-2247",
"bruno-api/set_roaming_enable.bru:8",
"bruno-api/set_roaming_disable.bru:8"
],
"upstreamDomain": "data-connection",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getAirplaneMode",
"method": "GET",
"pathTemplate": "/api/airplane-mode",
"handler": "get_airplane_mode_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:2315-2329",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<AirplaneModeResponse>; exact handler backend/src/handlers.rs:2315-2329",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "cellular",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:659-660",
"backend/src/handlers.rs:2315-2329",
"bruno-api/get_airplane_mode.bru:8"
],
"upstreamDomain": "data-connection",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postAirplaneMode",
"method": "POST",
"pathTemplate": "/api/airplane-mode",
"handler": "set_airplane_mode_handler",
"capability": "command",
"riskLevel": "R1",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor AirplaneModeRequest fields [enabled:bool] (models.rs:255); exact handler backend/src/handlers.rs:2250-2312",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<AirplaneModeResponse>; exact handler backend/src/handlers.rs:2250-2312",
"requestContentType": "application/json",
"timeoutMs": 10000,
"idempotency": "conditional",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "cellular",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:659-661",
"backend/src/handlers.rs:2250-2312",
"bruno-api/set_airplane_mode_disable.bru:8",
"bruno-api/set_airplane_mode_enable.bru:8"
],
"upstreamDomain": "data-connection",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postBasebandRestart",
"method": "POST",
"pathTemplate": "/api/baseband/restart",
"handler": "restart_baseband_handler",
"capability": "job",
"riskLevel": "R3",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:2133-2159",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<BasebandRestartResponse>; exact handler backend/src/handlers.rs:2133-2159",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "non-idempotent",
"confirmationPolicy": "strong",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "cellular",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:665-666",
"backend/src/handlers.rs:2133-2159"
],
"upstreamDomain": "data-connection",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getBasebandRestartStatus",
"method": "GET",
"pathTemplate": "/api/baseband/restart/status",
"handler": "get_baseband_restart_status_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:2161-2169",
"responseSchemaEvidence": "dynamic-json construction in exact handler backend/src/handlers.rs:2161-2169; field shape is implementation evidence only",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "cellular",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:669-670",
"backend/src/handlers.rs:2161-2169"
],
"upstreamDomain": "data-connection",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getWorkMode",
"method": "GET",
"pathTemplate": "/api/work-mode",
"handler": "get_work_mode_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:352-365",
"responseSchemaEvidence": "dynamic-json construction in exact handler backend/src/handlers.rs:352-365; field shape is implementation evidence only",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "esim",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:674-675",
"backend/src/handlers.rs:352-365"
],
"upstreamDomain": "workmode-esim",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postWorkMode",
"method": "POST",
"pathTemplate": "/api/work-mode",
"handler": "set_work_mode_handler",
"capability": "job",
"riskLevel": "R2",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor WorkModeRequest fields [mode:WorkMode, confirm:bool] (models.rs:57); exact handler backend/src/handlers.rs:368-405",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<WorkModeResponse>; exact handler backend/src/handlers.rs:368-405",
"requestContentType": "application/json",
"timeoutMs": 30000,
"idempotency": "conditional",
"confirmationPolicy": "explicit",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "esim",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:674-676",
"backend/src/handlers.rs:368-405"
],
"upstreamDomain": "workmode-esim",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getEsimConfig",
"method": "GET",
"pathTemplate": "/api/esim/config",
"handler": "get_esim_config_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:456-462",
"responseSchemaEvidence": "dynamic-json construction in exact handler backend/src/handlers.rs:456-462; field shape is implementation evidence only",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "esim",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:680-681",
"backend/src/handlers.rs:456-462"
],
"upstreamDomain": "workmode-esim",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postEsimConfig",
"method": "POST",
"pathTemplate": "/api/esim/config",
"handler": "set_esim_config_handler",
"capability": "job",
"riskLevel": "R2",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor crate::config::EsimConfig fields [lpac_path:String, custom_memory_total_kb:Option<u32>] (config.rs:1660); exact handler backend/src/handlers.rs:465-482",
"responseSchemaEvidence": "dynamic-json construction in exact handler backend/src/handlers.rs:465-482; field shape is implementation evidence only",
"requestContentType": "application/json",
"timeoutMs": 30000,
"idempotency": "conditional",
"confirmationPolicy": "explicit",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "esim",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:680-682",
"backend/src/handlers.rs:465-482"
],
"upstreamDomain": "workmode-esim",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getEsimLpacStatus",
"method": "GET",
"pathTemplate": "/api/esim/lpac/status",
"handler": "get_esim_lpac_status_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:408-416",
"responseSchemaEvidence": "dynamic-json construction in exact handler backend/src/handlers.rs:408-416; field shape is implementation evidence only",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "esim",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:686-687",
"backend/src/handlers.rs:408-416"
],
"upstreamDomain": "workmode-esim",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postEsimLpacRepair",
"method": "POST",
"pathTemplate": "/api/esim/lpac/repair",
"handler": "repair_esim_lpac_handler",
"capability": "job",
"riskLevel": "R2",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor EsimLpacRepairRequest fields [proxy_prefix:Option<String>, asset_url:Option<String>] (models.rs:153); exact handler backend/src/handlers.rs:419-453",
"responseSchemaEvidence": "dynamic-json construction in exact handler backend/src/handlers.rs:419-453; field shape is implementation evidence only",
"requestContentType": "application/json",
"timeoutMs": 30000,
"idempotency": "conditional",
"confirmationPolicy": "explicit",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "esim",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:690-691",
"backend/src/handlers.rs:419-453"
],
"upstreamDomain": "workmode-esim",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getEsimEuicc",
"method": "GET",
"pathTemplate": "/api/esim/euicc",
"handler": "get_esim_euicc_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "query extractor std::collections::HashMap<String, String>; exact exact handler backend/src/handlers.rs:485-521",
"responseSchemaEvidence": "dynamic-json construction in exact handler backend/src/handlers.rs:485-521; field shape is implementation evidence only",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "esim",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:694-695",
"backend/src/handlers.rs:485-521"
],
"upstreamDomain": "workmode-esim",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getEsimProfiles",
"method": "GET",
"pathTemplate": "/api/esim/profiles",
"handler": "get_esim_profiles_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "query extractor std::collections::HashMap<String, String>; exact exact handler backend/src/handlers.rs:524-598",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<EsimProfilesResponse>; exact handler backend/src/handlers.rs:524-598",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "esim",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:698-699",
"backend/src/handlers.rs:524-598"
],
"upstreamDomain": "workmode-esim",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postEsimProfiles",
"method": "POST",
"pathTemplate": "/api/esim/profiles",
"handler": "download_esim_profile_handler",
"capability": "command",
"riskLevel": "R1",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor EsimDownloadRequest fields [smdp:String, matching_id:String, confirmation_code:Option<String>, imei:Option<String>] (models.rs:174); exact handler backend/src/handlers.rs:803-1071",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<EsimCommandResponse>; exact handler backend/src/handlers.rs:803-1071",
"requestContentType": "application/json",
"timeoutMs": 30000,
"idempotency": "conditional",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [
"$.body.matching_id",
"$.body.confirmation_code",
"$.body.imei"
],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "esim",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:698-700",
"backend/src/handlers.rs:803-1071"
],
"upstreamDomain": "workmode-esim",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postEsimProfilesIccidEnable",
"method": "POST",
"pathTemplate": "/api/esim/profiles/{iccid}/enable",
"handler": "enable_esim_profile_handler",
"capability": "command",
"riskLevel": "R1",
"sessionSensitive": false,
"requestSchemaEvidence": "path extractor String; exact handler backend/src/handlers.rs:601-726",
"responseSchemaEvidence": "dynamic-json construction in exact handler backend/src/handlers.rs:601-726; field shape is implementation evidence only",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "conditional",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "esim",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:704-705",
"backend/src/handlers.rs:601-726"
],
"upstreamDomain": "workmode-esim",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postEsimProfilesIccidRename",
"method": "POST",
"pathTemplate": "/api/esim/profiles/{iccid}/rename",
"handler": "rename_esim_profile_handler",
"capability": "command",
"riskLevel": "R1",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor EsimRenameRequest fields [name:String] (models.rs:169); path extractor String; exact handler backend/src/handlers.rs:729-750",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<EsimCommandResponse>; exact handler backend/src/handlers.rs:729-750",
"requestContentType": "application/json",
"timeoutMs": 30000,
"idempotency": "conditional",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "esim",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:708-709",
"backend/src/handlers.rs:729-750"
],
"upstreamDomain": "workmode-esim",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "deleteEsimProfilesIccid",
"method": "DELETE",
"pathTemplate": "/api/esim/profiles/{iccid}",
"handler": "delete_esim_profile_handler",
"capability": "job",
"riskLevel": "R3",
"sessionSensitive": false,
"requestSchemaEvidence": "path extractor String; exact handler backend/src/handlers.rs:753-780",
"responseSchemaEvidence": "dynamic-json construction in exact handler backend/src/handlers.rs:753-780; field shape is implementation evidence only",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "idempotent",
"confirmationPolicy": "strong",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "esim",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:712-713",
"backend/src/handlers.rs:753-780"
],
"upstreamDomain": "workmode-esim",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getCalls",
"method": "GET",
"pathTemplate": "/api/calls",
"handler": "get_calls_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:2634-2655",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<CallListResponse>; exact handler backend/src/handlers.rs:2634-2655",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "calls",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:717-718",
"backend/src/handlers.rs:2634-2655",
"bruno-api/get_calls.bru:8"
],
"upstreamDomain": "calls",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postCallDial",
"method": "POST",
"pathTemplate": "/api/call/dial",
"handler": "dial_call_handler",
"capability": "command",
"riskLevel": "R1",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor MakeCallRequest fields [phone_number:String] (models.rs:810); exact handler backend/src/handlers.rs:2657-2689",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:2657-2689",
"requestContentType": "application/json",
"timeoutMs": 10000,
"idempotency": "non-idempotent",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [
"$.body.phone_number"
],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "calls",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:721-722",
"backend/src/handlers.rs:2657-2689",
"bruno-api/post_call_dial.bru:8"
],
"upstreamDomain": "calls",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postCallHangup",
"method": "POST",
"pathTemplate": "/api/call/hangup",
"handler": "hangup_call_handler",
"capability": "command",
"riskLevel": "R1",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor HangupCallRequest fields [path:String] (models.rs:830); exact handler backend/src/handlers.rs:2691-2725",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:2691-2725",
"requestContentType": "application/json",
"timeoutMs": 10000,
"idempotency": "non-idempotent",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "calls",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:725-726",
"backend/src/handlers.rs:2691-2725",
"bruno-api/post_call_hangup.bru:8"
],
"upstreamDomain": "calls",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postCallHangupAll",
"method": "POST",
"pathTemplate": "/api/call/hangup-all",
"handler": "hangup_all_calls_handler",
"capability": "command",
"riskLevel": "R1",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:2727-2760",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:2727-2760",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "non-idempotent",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "calls",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:729-730",
"backend/src/handlers.rs:2727-2760",
"bruno-api/post_call_hangup_all.bru:8"
],
"upstreamDomain": "calls",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postCallAnswer",
"method": "POST",
"pathTemplate": "/api/call/answer",
"handler": "answer_call_handler",
"capability": "command",
"riskLevel": "R1",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor HangupCallRequest fields [path:String] (models.rs:830); exact handler backend/src/handlers.rs:2762-2789",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:2762-2789",
"requestContentType": "application/json",
"timeoutMs": 10000,
"idempotency": "non-idempotent",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "calls",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:733-734",
"backend/src/handlers.rs:2762-2789",
"bruno-api/post_call_answer.bru:8"
],
"upstreamDomain": "calls",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getCallVolume",
"method": "GET",
"pathTemplate": "/api/call/volume",
"handler": "get_call_volume_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:2899-2906",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<CallVolumeResponse>; exact handler backend/src/handlers.rs:2899-2906",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "calls",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:737-738",
"backend/src/handlers.rs:2899-2906",
"bruno-api/get_call_volume.bru:8"
],
"upstreamDomain": "calls",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postCallVolume",
"method": "POST",
"pathTemplate": "/api/call/volume",
"handler": "set_call_volume_handler",
"capability": "command",
"riskLevel": "R1",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor SetCallVolumeRequest fields [speaker_volume:Option<u8>, microphone_volume:Option<u8>, muted:Option<bool>] (models.rs:856); exact handler backend/src/handlers.rs:2908-2922",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<CallVolumeResponse>; exact handler backend/src/handlers.rs:2908-2922",
"requestContentType": "application/json",
"timeoutMs": 10000,
"idempotency": "conditional",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "calls",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:737-739",
"backend/src/handlers.rs:2908-2922",
"bruno-api/set_call_volume.bru:8"
],
"upstreamDomain": "calls",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getCallForwarding",
"method": "GET",
"pathTemplate": "/api/call/forwarding",
"handler": "get_call_forwarding_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:2924-2931",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<CallForwardingResponse>; exact handler backend/src/handlers.rs:2924-2931",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "calls",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:743-744",
"backend/src/handlers.rs:2924-2931",
"bruno-api/get_call_forwarding.bru:8"
],
"upstreamDomain": "calls",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postCallForwarding",
"method": "POST",
"pathTemplate": "/api/call/forwarding",
"handler": "set_call_forwarding_handler",
"capability": "command",
"riskLevel": "R1",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor SetCallForwardingRequest fields [forward_type:String, number:String, timeout:Option<u16>] (models.rs:891); exact handler backend/src/handlers.rs:2933-2943",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<CallForwardingResponse>; exact handler backend/src/handlers.rs:2933-2943",
"requestContentType": "application/json",
"timeoutMs": 10000,
"idempotency": "conditional",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [
"$.body.number"
],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "calls",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:743-745",
"backend/src/handlers.rs:2933-2943",
"bruno-api/set_call_forwarding.bru:8"
],
"upstreamDomain": "calls",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getCallSettings",
"method": "GET",
"pathTemplate": "/api/call/settings",
"handler": "get_call_settings_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:2852-2866",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<CallSettingsResponse>; exact handler backend/src/handlers.rs:2852-2866",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "calls",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:749-750",
"backend/src/handlers.rs:2852-2866",
"bruno-api/get_call_settings.bru:8"
],
"upstreamDomain": "calls",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postCallSettings",
"method": "POST",
"pathTemplate": "/api/call/settings",
"handler": "set_call_settings_handler",
"capability": "job",
"riskLevel": "R2",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor SetCallSettingRequest fields [property:String, value:String] (models.rs:875); exact handler backend/src/handlers.rs:2868-2897",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:2868-2897",
"requestContentType": "application/json",
"timeoutMs": 10000,
"idempotency": "conditional",
"confirmationPolicy": "explicit",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "calls",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:749-751",
"backend/src/handlers.rs:2868-2897",
"bruno-api/set_call_settings.bru:8"
],
"upstreamDomain": "calls",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getCallHistory",
"method": "GET",
"pathTemplate": "/api/call/history",
"handler": "get_call_history_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "query extractor CallHistoryRequest fields [limit:i64, offset:i64] (models.rs:835); exact handler backend/src/handlers.rs:2791-2813",
"responseSchemaEvidence": "Rust return (StatusCode, Json<ApiResponse<CallHistoryResponse>>); exact handler backend/src/handlers.rs:2791-2813",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "calls",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:755-756",
"backend/src/handlers.rs:2791-2813"
],
"upstreamDomain": "calls",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "deleteCallHistoryId",
"method": "DELETE",
"pathTemplate": "/api/call/history/{id}",
"handler": "delete_call_history_handler",
"capability": "job",
"riskLevel": "R3",
"sessionSensitive": false,
"requestSchemaEvidence": "path extractor i64; exact handler backend/src/handlers.rs:2815-2832",
"responseSchemaEvidence": "Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/handlers.rs:2815-2832",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "idempotent",
"confirmationPolicy": "strong",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "calls",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:759-760",
"backend/src/handlers.rs:2815-2832",
"bruno-api/delete_call_history.bru:8"
],
"upstreamDomain": "calls",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postCallHistoryClear",
"method": "POST",
"pathTemplate": "/api/call/history/clear",
"handler": "clear_call_history_handler",
"capability": "job",
"riskLevel": "R3",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:2834-2850",
"responseSchemaEvidence": "Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/handlers.rs:2834-2850",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "conditional",
"confirmationPolicy": "strong",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "calls",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:763-764",
"backend/src/handlers.rs:2834-2850",
"bruno-api/clear_call_history.bru:8"
],
"upstreamDomain": "calls",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getImsStatus",
"method": "GET",
"pathTemplate": "/api/ims/status",
"handler": "get_ims_status_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:2945-2952",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<ImsStatusResponse>; exact handler backend/src/handlers.rs:2945-2952",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "calls",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:767-768",
"backend/src/handlers.rs:2945-2952",
"bruno-api/get_ims_status.bru:8"
],
"upstreamDomain": "calls",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getVoicemailStatus",
"method": "GET",
"pathTemplate": "/api/voicemail/status",
"handler": "get_voicemail_status_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:2954-2961",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<VoicemailStatusResponse>; exact handler backend/src/handlers.rs:2954-2961",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "calls",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:771-772",
"backend/src/handlers.rs:2954-2961",
"bruno-api/get_voicemail_status.bru:8"
],
"upstreamDomain": "calls",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postSmsSend",
"method": "POST",
"pathTemplate": "/api/sms/send",
"handler": "send_sms_handler",
"capability": "job",
"riskLevel": "R2",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor SendSmsRequest fields [phone_number:String, content:String] (models.rs:912); exact handler backend/src/handlers.rs:2373-2404",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:2373-2404",
"requestContentType": "application/json",
"timeoutMs": 10000,
"idempotency": "non-idempotent",
"confirmationPolicy": "explicit",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [
"$.body.phone_number",
"$.body.content"
],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "messages",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:776-777",
"backend/src/handlers.rs:2373-2404",
"bruno-api/post_sms_send.bru:8"
],
"upstreamDomain": "messages",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getSmsList",
"method": "GET",
"pathTemplate": "/api/sms/list",
"handler": "get_sms_list_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "query extractor SmsListRequest fields [limit:i64, offset:i64, direction:Option<String>] (models.rs:918); exact handler backend/src/handlers.rs:2407-2434",
"responseSchemaEvidence": "Rust return (StatusCode, Json<ApiResponse<SmsListResponse>>); exact handler backend/src/handlers.rs:2407-2434",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "messages",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:780-781",
"backend/src/handlers.rs:2407-2434"
],
"upstreamDomain": "messages",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getSmsConversation",
"method": "GET",
"pathTemplate": "/api/sms/conversation",
"handler": "get_sms_conversation_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "query extractor SmsConversationRequest fields [phone_number:String, limit:i64] (models.rs:927); exact handler backend/src/handlers.rs:2437-2458",
"responseSchemaEvidence": "Rust return (StatusCode, Json<ApiResponse<SmsListResponse>>); exact handler backend/src/handlers.rs:2437-2458",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [
"$.query.phone_number"
],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "messages",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:784-785",
"backend/src/handlers.rs:2437-2458"
],
"upstreamDomain": "messages",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getSmsStats",
"method": "GET",
"pathTemplate": "/api/sms/stats",
"handler": "get_sms_stats_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:2461-2477",
"responseSchemaEvidence": "Rust return (StatusCode, Json<ApiResponse<SmsStatsResponse>>); exact handler backend/src/handlers.rs:2461-2477",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "messages",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:788-789",
"backend/src/handlers.rs:2461-2477",
"bruno-api/get_sms_stats.bru:8"
],
"upstreamDomain": "messages",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postSmsBatchDelete",
"method": "POST",
"pathTemplate": "/api/sms/batch-delete",
"handler": "delete_sms_batch_handler",
"capability": "job",
"riskLevel": "R3",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor SmsBatchDeleteRequest fields [ids:Vec<i64>, phone_numbers:Vec<String>] (models.rs:934); exact handler backend/src/handlers.rs:2551-2578",
"responseSchemaEvidence": "Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/handlers.rs:2551-2578",
"requestContentType": "application/json",
"timeoutMs": 10000,
"idempotency": "conditional",
"confirmationPolicy": "strong",
"batchable": true,
"syncSafe": false,
"sensitiveFields": [
"$.body.phone_numbers[*]"
],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "messages",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:792-793",
"backend/src/handlers.rs:2551-2578"
],
"upstreamDomain": "messages",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "deleteSmsConversationPhoneNumber",
"method": "DELETE",
"pathTemplate": "/api/sms/conversation/{phone_number}",
"handler": "delete_sms_conversation_handler",
"capability": "job",
"riskLevel": "R3",
"sessionSensitive": false,
"requestSchemaEvidence": "path extractor String; exact handler backend/src/handlers.rs:2528-2548",
"responseSchemaEvidence": "Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/handlers.rs:2528-2548",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "idempotent",
"confirmationPolicy": "strong",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [
"$.path.phone_number"
],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "messages",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:796-797",
"backend/src/handlers.rs:2528-2548"
],
"upstreamDomain": "messages",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "deleteSmsMessageId",
"method": "DELETE",
"pathTemplate": "/api/sms/message/{id}",
"handler": "delete_sms_message_handler",
"capability": "job",
"riskLevel": "R3",
"sessionSensitive": false,
"requestSchemaEvidence": "path extractor i64; exact handler backend/src/handlers.rs:2508-2525",
"responseSchemaEvidence": "Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/handlers.rs:2508-2525",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "idempotent",
"confirmationPolicy": "strong",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "messages",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:800-801",
"backend/src/handlers.rs:2508-2525"
],
"upstreamDomain": "messages",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postSmsClear",
"method": "POST",
"pathTemplate": "/api/sms/clear",
"handler": "clear_sms_handler",
"capability": "job",
"riskLevel": "R3",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:2480-2505",
"responseSchemaEvidence": "Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/handlers.rs:2480-2505",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "conditional",
"confirmationPolicy": "strong",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "messages",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:804-805",
"backend/src/handlers.rs:2480-2505",
"bruno-api/post_sms_clear.bru:8"
],
"upstreamDomain": "messages",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getStats",
"method": "GET",
"pathTemplate": "/api/stats",
"handler": "get_system_stats",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:3272-3288",
"responseSchemaEvidence": "dynamic-json construction in exact handler backend/src/handlers.rs:3272-3288; field shape is implementation evidence only",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "overview",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:808-808",
"backend/src/handlers.rs:3272-3288",
"bruno-api/get_stats.bru:8"
],
"upstreamDomain": "device-system",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getStatsCpu",
"method": "GET",
"pathTemplate": "/api/stats/cpu",
"handler": "get_cpu_info",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:3291-3302",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<CpuInfo>; exact handler backend/src/handlers.rs:3291-3302",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "overview",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:809-809",
"backend/src/handlers.rs:3291-3302",
"bruno-api/get_cpu_info.bru:8"
],
"upstreamDomain": "device-system",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getConnectivity",
"method": "GET",
"pathTemplate": "/api/connectivity",
"handler": "get_connectivity_check",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:3305-3322",
"responseSchemaEvidence": "Rust return (StatusCode, Json<ApiResponse<ConnectivityCheckResponse>>); exact handler backend/src/handlers.rs:3305-3322",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "overview",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:811-812",
"backend/src/handlers.rs:3305-3322"
],
"upstreamDomain": "device-system",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postSystemReboot",
"method": "POST",
"pathTemplate": "/api/system/reboot",
"handler": "system_reboot",
"capability": "job",
"riskLevel": "R3",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor SystemRebootRequest fields [delay_seconds:u32] (models.rs:422); exact handler backend/src/handlers.rs:3381-3406",
"responseSchemaEvidence": "dynamic-json construction in exact handler backend/src/handlers.rs:3381-3406; field shape is implementation evidence only",
"requestContentType": "application/json",
"timeoutMs": 10000,
"idempotency": "non-idempotent",
"confirmationPolicy": "strong",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "overview",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:815-816",
"backend/src/handlers.rs:3381-3406",
"bruno-api/post_system_reboot.bru:8"
],
"upstreamDomain": "device-system",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postServiceRestart",
"method": "POST",
"pathTemplate": "/api/service/restart",
"handler": "restart_service_handler",
"capability": "job",
"riskLevel": "R3",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:3578-3601",
"responseSchemaEvidence": "dynamic-json construction in exact handler backend/src/handlers.rs:3578-3601; field shape is implementation evidence only",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "non-idempotent",
"confirmationPolicy": "strong",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "overview",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:819-820",
"backend/src/handlers.rs:3578-3601"
],
"upstreamDomain": "device-system",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getNotificationsConfig",
"method": "GET",
"pathTemplate": "/api/notifications/config",
"handler": "get_notification_config_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:3641-3652",
"responseSchemaEvidence": "Rust return ( StatusCode, Json<ApiResponse<crate::config::NotificationConfig>>, ); exact handler backend/src/handlers.rs:3641-3652",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [
"$.response.data.channels[*].config"
],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "notifications",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:824-825",
"backend/src/handlers.rs:3641-3652",
"bruno-api/get_notification_config.bru:8"
],
"upstreamDomain": "notifications",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postNotificationsConfig",
"method": "POST",
"pathTemplate": "/api/notifications/config",
"handler": "set_notification_config_handler",
"capability": "job",
"riskLevel": "R2",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor crate::config::NotificationConfig fields [version:u8, channels:Vec<NotificationChannelInstance>, rules:Vec<NotificationRule>, log_cleanup:NotificationLogCleanupConfig] (config.rs:548); exact handler backend/src/handlers.rs:3655-3672",
"responseSchemaEvidence": "Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/handlers.rs:3655-3672",
"requestContentType": "application/json",
"timeoutMs": 10000,
"idempotency": "conditional",
"confirmationPolicy": "explicit",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [
"$.body.channels[*].config"
],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "notifications",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:824-826",
"backend/src/handlers.rs:3655-3672",
"bruno-api/set_notification_config.bru:8"
],
"upstreamDomain": "notifications",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postNotificationsTestChannel",
"method": "POST",
"pathTemplate": "/api/notifications/test/{channel}",
"handler": "test_notification_channel_handler",
"capability": "job",
"riskLevel": "R2",
"sessionSensitive": false,
"requestSchemaEvidence": "path extractor String; exact handler backend/src/handlers.rs:3675-3704",
"responseSchemaEvidence": "Rust return ( StatusCode, Json<ApiResponse<crate::models::WebhookTestResponse>>, ); exact handler backend/src/handlers.rs:3675-3704",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "non-idempotent",
"confirmationPolicy": "explicit",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "notifications",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:830-831",
"backend/src/handlers.rs:3675-3704"
],
"upstreamDomain": "notifications",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getNotificationsLogs",
"method": "GET",
"pathTemplate": "/api/notifications/logs",
"handler": "get_notification_logs_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "query extractor NotificationLogQuery fields [event_type:String, status:String, q:String, start_date:String, end_date:String, limit:i64, offset:i64] (handlers.rs:3607); exact handler backend/src/handlers.rs:3709-3734",
"responseSchemaEvidence": "Rust return ( StatusCode, Json<ApiResponse<crate::db::NotificationLogsResponse>>, ); exact handler backend/src/handlers.rs:3709-3734",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "notifications",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:835-836",
"backend/src/handlers.rs:3709-3734"
],
"upstreamDomain": "notifications",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postNotificationsLogsClear",
"method": "POST",
"pathTemplate": "/api/notifications/logs/clear",
"handler": "clear_notification_logs_handler",
"capability": "job",
"riskLevel": "R3",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:3737-3760",
"responseSchemaEvidence": "Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/handlers.rs:3737-3760",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "conditional",
"confirmationPolicy": "strong",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "notifications",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:839-840",
"backend/src/handlers.rs:3737-3760"
],
"upstreamDomain": "notifications",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getNotificationsQueue",
"method": "GET",
"pathTemplate": "/api/notifications/queue",
"handler": "get_notification_queue_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "query extractor NotificationQueueQuery fields [limit:i64] (notification_queue.rs:14); exact handler backend/src/notification_queue.rs:24-41",
"responseSchemaEvidence": "Rust return ( StatusCode, Json<ApiResponse<crate::db::NotificationQueueResponse>>, ); exact handler backend/src/notification_queue.rs:24-41",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "notifications",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:843-844",
"backend/src/notification_queue.rs:24-41"
],
"upstreamDomain": "notifications",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postNotificationsQueueRetryAll",
"method": "POST",
"pathTemplate": "/api/notifications/queue/retry-all",
"handler": "retry_all_notification_queue_handler",
"capability": "job",
"riskLevel": "R2",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/notification_queue.rs:84-100",
"responseSchemaEvidence": "Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/notification_queue.rs:84-100",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "non-idempotent",
"confirmationPolicy": "explicit",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "notifications",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:847-848",
"backend/src/notification_queue.rs:84-100"
],
"upstreamDomain": "notifications",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postNotificationsQueueClear",
"method": "POST",
"pathTemplate": "/api/notifications/queue/clear",
"handler": "clear_notification_queue_handler",
"capability": "job",
"riskLevel": "R3",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/notification_queue.rs:103-119",
"responseSchemaEvidence": "Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/notification_queue.rs:103-119",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "conditional",
"confirmationPolicy": "strong",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "notifications",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:851-852",
"backend/src/notification_queue.rs:103-119"
],
"upstreamDomain": "notifications",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "deleteNotificationsQueueId",
"method": "DELETE",
"pathTemplate": "/api/notifications/queue/{id}",
"handler": "delete_notification_queue_item_handler",
"capability": "job",
"riskLevel": "R3",
"sessionSensitive": false,
"requestSchemaEvidence": "path extractor i64; exact handler backend/src/notification_queue.rs:64-81",
"responseSchemaEvidence": "Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/notification_queue.rs:64-81",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "idempotent",
"confirmationPolicy": "strong",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "notifications",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:855-856",
"backend/src/notification_queue.rs:64-81"
],
"upstreamDomain": "notifications",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postNotificationsQueueIdRetry",
"method": "POST",
"pathTemplate": "/api/notifications/queue/{id}/retry",
"handler": "retry_notification_queue_item_handler",
"capability": "job",
"riskLevel": "R2",
"sessionSensitive": false,
"requestSchemaEvidence": "path extractor i64; exact handler backend/src/notification_queue.rs:44-61",
"responseSchemaEvidence": "Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/notification_queue.rs:44-61",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "non-idempotent",
"confirmationPolicy": "explicit",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "notifications",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:859-860",
"backend/src/notification_queue.rs:44-61"
],
"upstreamDomain": "notifications",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getAutomationConfig",
"method": "GET",
"pathTemplate": "/api/automation/config",
"handler": "get_automation_config_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:3968-3979",
"responseSchemaEvidence": "Rust return ( StatusCode, Json<ApiResponse<crate::config::AutomationConfig>>, ); exact handler backend/src/handlers.rs:3968-3979",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [
"$.response.data.tasks[*].config"
],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "automation",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:864-865",
"backend/src/handlers.rs:3968-3979"
],
"upstreamDomain": "automation",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postAutomationConfig",
"method": "POST",
"pathTemplate": "/api/automation/config",
"handler": "set_automation_config_handler",
"capability": "job",
"riskLevel": "R2",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor crate::config::AutomationConfig fields [enabled:bool, tasks:Vec<AutomationTask>] (config.rs:1394); exact handler backend/src/handlers.rs:3982-3999",
"responseSchemaEvidence": "Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/handlers.rs:3982-3999",
"requestContentType": "application/json",
"timeoutMs": 10000,
"idempotency": "conditional",
"confirmationPolicy": "explicit",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [
"$.body.tasks[*].config"
],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "automation",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:864-866",
"backend/src/handlers.rs:3982-3999"
],
"upstreamDomain": "automation",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getAutomationLogs",
"method": "GET",
"pathTemplate": "/api/automation/logs",
"handler": "get_automation_logs_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "query extractor AutomationLogQuery fields [task_type:String, status:String, q:String, start_date:String, end_date:String, limit:i64, offset:i64] (handlers.rs:3938); exact handler backend/src/handlers.rs:4002-4027",
"responseSchemaEvidence": "Rust return ( StatusCode, Json<ApiResponse<crate::db::AutomationLogsResponse>>, ); exact handler backend/src/handlers.rs:4002-4027",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "automation",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:870-871",
"backend/src/handlers.rs:4002-4027"
],
"upstreamDomain": "automation",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postAutomationLogsClear",
"method": "POST",
"pathTemplate": "/api/automation/logs/clear",
"handler": "clear_automation_logs_handler",
"capability": "job",
"riskLevel": "R3",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:4030-4053",
"responseSchemaEvidence": "Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/handlers.rs:4030-4053",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "conditional",
"confirmationPolicy": "strong",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "automation",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:874-875",
"backend/src/handlers.rs:4030-4053"
],
"upstreamDomain": "automation",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postAutomationTestTaskId",
"method": "POST",
"pathTemplate": "/api/automation/test/{task_id}",
"handler": "test_automation_task_handler",
"capability": "job",
"riskLevel": "R2",
"sessionSensitive": false,
"requestSchemaEvidence": "path extractor String; exact handler backend/src/handlers.rs:4056-4146",
"responseSchemaEvidence": "Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/handlers.rs:4056-4146",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "non-idempotent",
"confirmationPolicy": "explicit",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "automation",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:878-879",
"backend/src/handlers.rs:4056-4146"
],
"upstreamDomain": "automation",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getOtaStatus",
"method": "GET",
"pathTemplate": "/api/ota/status",
"handler": "get_ota_status_handler",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:3763-3769",
"responseSchemaEvidence": "dynamic-json construction in exact handler backend/src/handlers.rs:3763-3769; field shape is implementation evidence only",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "ota",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:882-883",
"backend/src/handlers.rs:3763-3769",
"bruno-api/get_ota_status.bru:8"
],
"upstreamDomain": "ota",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postOtaUpload",
"method": "POST",
"pathTemplate": "/api/ota/upload",
"handler": "upload_ota_handler",
"capability": "job",
"riskLevel": "R3",
"sessionSensitive": false,
"requestSchemaEvidence": "bytes extractor axum::body::Bytes; exact exact handler backend/src/handlers.rs:3772-3792",
"responseSchemaEvidence": "ApiResponse<OtaUploadResponse> success payload/error envelope; success/error payload evidenced by ApiResponse<OtaUploadResponse>; exact handler backend/src/handlers.rs:3772-3792",
"requestContentType": "application/octet-stream",
"timeoutMs": 30000,
"idempotency": "non-idempotent",
"confirmationPolicy": "strong",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "ota",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:886-887",
"backend/src/handlers.rs:3772-3792"
],
"upstreamDomain": "ota",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postOtaLatestRelease",
"method": "POST",
"pathTemplate": "/api/ota/latest-release",
"handler": "get_latest_ota_release_handler",
"capability": "command",
"riskLevel": "R1",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor crate::models::OtaOnlinePrepareRequest fields [proxy_prefix:Option<String>] (models.rs:986); exact handler backend/src/handlers.rs:3795-3825",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<crate::models::OtaLatestReleaseResponse>; exact handler backend/src/handlers.rs:3795-3825",
"requestContentType": "application/json",
"timeoutMs": 30000,
"idempotency": "non-idempotent",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "ota",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:892-893",
"backend/src/handlers.rs:3795-3825"
],
"upstreamDomain": "ota",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postOtaOnlinePrepare",
"method": "POST",
"pathTemplate": "/api/ota/online-prepare",
"handler": "prepare_online_ota_handler",
"capability": "job",
"riskLevel": "R2",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor crate::models::OtaOnlinePrepareRequest fields [proxy_prefix:Option<String>] (models.rs:986); exact handler backend/src/handlers.rs:3828-3889",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<crate::models::OtaUploadResponse>; exact handler backend/src/handlers.rs:3828-3889",
"requestContentType": "application/json",
"timeoutMs": 30000,
"idempotency": "non-idempotent",
"confirmationPolicy": "explicit",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "ota",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:896-897",
"backend/src/handlers.rs:3828-3889"
],
"upstreamDomain": "ota",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postOtaApply",
"method": "POST",
"pathTemplate": "/api/ota/apply",
"handler": "apply_ota_handler",
"capability": "job",
"riskLevel": "R3",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor crate::models::OtaApplyRequest fields [restart_now:bool] (models.rs:1030); exact handler backend/src/handlers.rs:3892-3911",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:3892-3911",
"requestContentType": "application/json",
"timeoutMs": 30000,
"idempotency": "non-idempotent",
"confirmationPolicy": "strong",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "ota",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:900-901",
"backend/src/handlers.rs:3892-3911",
"bruno-api/post_ota_apply_restart.bru:8",
"bruno-api/post_ota_apply.bru:8"
],
"upstreamDomain": "ota",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postOtaCancel",
"method": "POST",
"pathTemplate": "/api/ota/cancel",
"handler": "cancel_ota_handler",
"capability": "command",
"riskLevel": "R1",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:3914-3931",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:3914-3931",
"requestContentType": "none",
"timeoutMs": 30000,
"idempotency": "conditional",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "ota",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:904-905",
"backend/src/handlers.rs:3914-3931",
"bruno-api/post_ota_cancel.bru:8"
],
"upstreamDomain": "ota",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postAuthPassword",
"method": "POST",
"pathTemplate": "/api/auth/password",
"handler": "auth::change_password",
"capability": "job",
"riskLevel": "R3",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor ChangePasswordRequest fields [new_password:String] (auth.rs:59); exact handler backend/src/auth.rs:491-553",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<Value>; exact handler backend/src/auth.rs:491-553",
"requestContentType": "application/json",
"timeoutMs": 10000,
"idempotency": "conditional",
"confirmationPolicy": "strong",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [
"$.body.new_password",
"$.response.headers.set-cookie"
],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "settings-instance",
"executionPolicy": "dedicatedFlow",
"sourceEvidence": [
"backend/src/main.rs:908-909",
"backend/src/auth.rs:491-553",
"backend/src/auth.rs:43-43"
],
"upstreamDomain": "instances-auth",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getAuthSettings",
"method": "GET",
"pathTemplate": "/api/auth/settings",
"handler": "auth::get_settings",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/auth.rs:555-570",
"responseSchemaEvidence": "Rust return (StatusCode, Json<ApiResponse<AuthSettingsResponse>>); exact handler backend/src/auth.rs:555-570",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [
"$.request.headers.cookie"
],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "settings-instance",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:912-913",
"backend/src/auth.rs:555-570",
"backend/src/auth.rs:43-43"
],
"upstreamDomain": "instances-auth",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postAuthSettings",
"method": "POST",
"pathTemplate": "/api/auth/settings",
"handler": "auth::set_settings",
"capability": "job",
"riskLevel": "R2",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor SecurityConfig fields [password_protection_enabled:bool, password_min_length:u8, password_require_letters:bool, password_require_digits:bool, password_require_symbols:bool, session_ttl_seconds:i64, idle_timeout_seconds:i64] (config.rs:615); exact handler backend/src/auth.rs:572-640",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<Value>; exact handler backend/src/auth.rs:572-640",
"requestContentType": "application/json",
"timeoutMs": 10000,
"idempotency": "conditional",
"confirmationPolicy": "explicit",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [
"$.request.headers.cookie"
],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "settings-instance",
"executionPolicy": "dedicatedFlow",
"sourceEvidence": [
"backend/src/main.rs:912-914",
"backend/src/auth.rs:572-640",
"backend/src/auth.rs:43-43"
],
"upstreamDomain": "instances-auth",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getHealth",
"method": "GET",
"pathTemplate": "/api/health",
"handler": "health_check",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/handlers.rs:65-75",
"responseSchemaEvidence": "dynamic-json construction in exact handler backend/src/handlers.rs:65-75; field shape is implementation evidence only",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "instances-new",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:923-923",
"backend/src/handlers.rs:65-75",
"bruno-api/get_health.bru:8",
"backend/src/auth.rs:43-43"
],
"upstreamDomain": "instances-auth",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "getAuthStatus",
"method": "GET",
"pathTemplate": "/api/auth/status",
"handler": "auth::status",
"capability": "query",
"riskLevel": "R0",
"sessionSensitive": false,
"requestSchemaEvidence": "none; no body/query/path extractor; exact handler backend/src/auth.rs:345-364",
"responseSchemaEvidence": "Rust return (StatusCode, Json<ApiResponse<AuthStatusResponse>>); exact handler backend/src/auth.rs:345-364",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "safe",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [
"$.request.headers.cookie"
],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "instances-new",
"executionPolicy": "registeredOperation",
"sourceEvidence": [
"backend/src/main.rs:925-926",
"backend/src/auth.rs:345-364",
"backend/src/auth.rs:43-43"
],
"upstreamDomain": "instances-auth",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postAuthSetup",
"method": "POST",
"pathTemplate": "/api/auth/setup",
"handler": "auth::setup",
"capability": "job",
"riskLevel": "R3",
"sessionSensitive": false,
"requestSchemaEvidence": "body extractor LoginRequest fields [password:String] (auth.rs:54); exact handler backend/src/auth.rs:366-427",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<Value>; exact handler backend/src/auth.rs:366-427",
"requestContentType": "application/json",
"timeoutMs": 10000,
"idempotency": "conditional",
"confirmationPolicy": "strong",
"batchable": false,
"syncSafe": false,
"sensitiveFields": [
"$.body.password",
"$.response.headers.set-cookie"
],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "instances-new",
"executionPolicy": "dedicatedFlow",
"sourceEvidence": [
"backend/src/main.rs:929-930",
"backend/src/auth.rs:366-427",
"backend/src/auth.rs:43-43"
],
"upstreamDomain": "instances-auth",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3"
},
{
"operationId": "postAuthLogin",
"method": "POST",
"pathTemplate": "/api/auth/login",
"handler": "auth::login",
"capability": "command",
"riskLevel": "R1",
"sessionSensitive": true,
"requestSchemaEvidence": "body extractor LoginRequest fields [password:String] (auth.rs:54); exact handler backend/src/auth.rs:429-489",
"responseSchemaEvidence": "success/error payload evidenced by ApiResponse<Value>; exact handler backend/src/auth.rs:429-489",
"requestContentType": "application/json",
"timeoutMs": 10000,
"idempotency": "conditional",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [
"$.body.password",
"$.response.headers.set-cookie"
],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "instances-new",
"executionPolicy": "dedicatedFlow",
"sourceEvidence": [
"backend/src/main.rs:933-934",
"backend/src/auth.rs:429-489",
"backend/src/auth.rs:43-43"
],
"upstreamDomain": "instances-auth",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3",
"automaticReplay": "forbidden"
},
{
"operationId": "postAuthLogout",
"method": "POST",
"pathTemplate": "/api/auth/logout",
"handler": "auth::logout",
"capability": "command",
"riskLevel": "R1",
"sessionSensitive": true,
"requestSchemaEvidence": "none body; HeaderMap carries simadmin_session cookie; exact handler backend/src/auth.rs:642-655; cookie name backend/src/auth.rs:43-43",
"responseSchemaEvidence": "dynamic-json construction in exact handler backend/src/auth.rs:642-655; field shape is implementation evidence only",
"requestContentType": "none",
"timeoutMs": 10000,
"idempotency": "conditional",
"confirmationPolicy": "none",
"batchable": false,
"syncSafe": true,
"sensitiveFields": [
"$.request.headers.cookie",
"$.response.headers.set-cookie"
],
"compatibilityAdapter": "none-pinned-commit",
"uiOwner": "settings-instance",
"executionPolicy": "dedicatedFlow",
"sourceEvidence": [
"backend/src/main.rs:937-938",
"backend/src/auth.rs:642-655",
"backend/src/auth.rs:43-43"
],
"upstreamDomain": "instances-auth",
"auditedAtCommit": "58e220411d6599609f0eeda01eb7016e9212f970",
"responseFixtureStatus": "pending-phase-0.3",
"automaticReplay": "forbidden"
}
] as const;
type Direction = 'request' | 'response' | 'path' | 'query' | 'session';
type SensitiveHint = { symbol?: string; containers?: [string, string, string][]; handlerToken?: string };
const sensitive = (direction: Direction, path: string, reason: string, redactionMode: 'drop' | 'mask' = 'mask', hint: SensitiveHint = {}) =>
({ direction, path, reason, redactionMode, hint });
/* Paths below are deliberately endpoint-specific. They are review policy layered on top of the
* mechanically rebuilt source claims; the snapshot proves the anchors exist, not their semantics. */
const sensitiveSupplements: Record<string, ReturnType<typeof sensitive>[]> = {
'GET /api/sim': ['iccid','imsi','phone_numbers','sms_center'].map(f => sensitive('response', `$.response.data.${f}`, 'SIM/subscriber identifier', 'mask', { symbol: 'SimInfoResponse' })),
'POST /api/sim/cache': ['phone_number','sms_center'].map(f => sensitive('request', `$.body.${f}`, 'subscriber contact value')),
'GET /api/sms/list': [sensitive('response','$.response.data.messages[*].phone_number','message correspondent','mask',{symbol:'SmsMessage',containers:[['SmsListResponse','messages','SmsMessage']]}), sensitive('response','$.response.data.messages[*].content','message body','drop',{symbol:'SmsMessage',containers:[['SmsListResponse','messages','SmsMessage']]})],
'GET /api/sms/conversation': [sensitive('query','$.query.phone_number','message correspondent','mask',{symbol:'SmsConversationRequest'}), sensitive('response','$.response.data.messages[*].phone_number','message correspondent','mask',{symbol:'SmsMessage',containers:[['SmsListResponse','messages','SmsMessage']]}), sensitive('response','$.response.data.messages[*].content','message body','drop',{symbol:'SmsMessage',containers:[['SmsListResponse','messages','SmsMessage']]})],
'GET /api/calls': [sensitive('response','$.response.data.calls[*].phone_number','call party','mask',{symbol:'CallInfo',containers:[['CallListResponse','calls','CallInfo']]})],
'GET /api/call/history': [sensitive('response','$.response.data.records[*].phone_number','call party','mask',{symbol:'CallRecord',containers:[['CallHistoryResponse','records','CallRecord']]})],
'GET /api/call/forwarding': ['voice_unconditional','voice_busy','voice_no_reply','voice_not_reachable'].map(f=>sensitive('response',`$.response.data.${f}`,'forwarding destination','mask',{symbol:'CallForwardingResponse'})),
'GET /api/voicemail/status': [sensitive('response','$.response.data.mailbox_number','voicemail number','mask',{symbol:'VoicemailStatusResponse'})],
'GET /api/apn': [sensitive('response','$.response.data.contexts[*].username','APN credential','drop',{symbol:'ApnContext',containers:[['ApnListResponse','contexts','ApnContext']]}), sensitive('response','$.response.data.contexts[*].password','APN credential','drop',{symbol:'ApnContext',containers:[['ApnListResponse','contexts','ApnContext']]})],
'GET /api/device-network/wlan/status': ['ssid','ipv4_addresses','ipv6_addresses'].map(f => sensitive('response',`$.response.data.${f}`,'network identifier','mask',{symbol:'WlanStatusResponse'})),
'POST /api/device-network/wlan/scan': ['ssid','bssid'].map(f => sensitive('response',`$.response.data.networks[*].${f}`,'network identifier','mask',{symbol:'WlanNetwork',containers:[['WlanScanResponse','networks','WlanNetwork']]})),
'GET /api/device-network/wlan/profiles': [sensitive('response','$.response.data.profiles[*].ssid','network identifier','mask',{symbol:'WlanSavedNetwork',containers:[['WlanProfilesResponse','profiles','WlanSavedNetwork']]})],
'POST /api/device-network/wlan/connect': [sensitive('request','$.body.ssid','network identifier'), sensitive('request','$.body.password','WLAN credential','drop')],
'GET /api/esim/euicc': [sensitive('response','$.response.data.eid','eUICC identifier','mask',{symbol:'EsimEuiccInfo'})],
'GET /api/esim/profiles': [sensitive('response','$.response.data.profiles[*].iccid','eSIM identifier','mask',{symbol:'EsimProfile',containers:[['EsimProfilesResponse','profiles','EsimProfile']]})],
};
function legacySensitive(path: string) {
const isDrop = /password|secret|token|cookie|content|confirmation_code/i.test(path);
const direction: Direction = path.startsWith('$.body') ? 'request' : path.startsWith('$.query') ? 'query' :
path.startsWith('$.path') ? 'path' : /cookie|session/.test(path) ? 'session' : 'response';
const canonical = path.replace('$.request.headers.', '$.session.').replace('$.response.headers.', '$.session.');
return sensitive(direction, canonical, isDrop ? 'secret or message content' : 'identifier or address', isDrop ? 'drop' : 'mask');
}
function anchorSensitive(field: ReturnType<typeof sensitive>, operation: any) {
const modelField = field.path.replace(/\[\*\]/g, '').split('.').at(-1)!;
const claim = ['request','path','query'].includes(field.direction) ? operation.requestEvidence : operation.responseEvidence;
const candidates = [...claim.modelEvidence.map((m: any) => m.symbol), ...Object.keys(sensitiveModelEvidence58e2204)];
const symbol = field.hint.symbol ?? candidates.find(s => (sensitiveModelEvidence58e2204 as any)[s]?.fields?.[modelField]);
if (symbol) {
const model = (sensitiveModelEvidence58e2204 as any)[symbol];
const containerPath = (field.hint.containers ?? []).map(([owner, linkField, targetSymbol]) => ({ ...(sensitiveModelEvidence58e2204 as any)[owner], field: linkField, targetSymbol }));
return { ...field, sourceAnchor: { symbol, sourceSha256: model.sourceSha256 }, evidence: { ...model, modelField, fieldPath: field.path, containerPath } };
}
if (field.direction === 'session') {
const sessionEvidence = { sourceFile: 'backend/src/auth.rs', startLine: 43, endLine: 43, sourceSha256: 'b5bc3eefe0f9312882f59ddacf3a062064fdd90e448e5022b81d9ba940a9d266', symbol: 'SESSION_COOKIE', fieldPath: field.path, handlerToken: 'simadmin_session' };
return { ...field, sourceAnchor: { symbol: 'SESSION_COOKIE', sourceSha256: sessionEvidence.sourceSha256 }, evidence: sessionEvidence };
}
const fallbackToken = modelField;
return { ...field, sourceAnchor: { symbol: operation.handler, sourceSha256: claim.sourceSha256 }, evidence: { sourceFile: claim.sourceFile, startLine: claim.startLine, endLine: claim.endLine, sourceSha256: claim.sourceSha256, symbol: operation.handler, fieldPath: field.path, handlerToken: field.hint.handlerToken ?? fallbackToken } };
}
export const upstream58e2204Operations = rawUpstream58e2204Operations.map(operation => {
const route = `${operation.method} ${operation.pathTemplate}`;
const evidence = structuredEvidence58e2204[route as keyof typeof structuredEvidence58e2204];
const merged = [...operation.sensitiveFields.map(legacySensitive), ...(sensitiveSupplements[route] ?? [])]
.filter(field => !(route === 'GET /api/apn' && field.path.startsWith('$.body.')))
.filter(field => !(route === 'GET /api/device-network/wlan/profiles' && field.path === '$.response.data[*].ssid'))
.filter(field => !(route === 'POST /api/device-network/wlan/profile' && field.path.endsWith('.credentials')));
const unique = [...new Map(merged.map(field => [`${field.direction}:${field.path}`, field])).values()];
const withEvidence = { ...operation, ...evidence };
return { ...withEvidence, semanticBindingReview: 'reviewed-phase-0.2', sensitiveFields: unique.map(field => anchorSensitive(field, withEvidence)) };
});