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 success payload/error envelope; success/error payload evidenced by ApiResponse; 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; 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, sms_center:Option] (models.rs:1036); exact handler backend/src/handlers.rs:1167-1213', responseSchemaEvidence: 'success/error payload evidenced by ApiResponse; 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 success payload/error envelope; success/error payload evidenced by ApiResponse; 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; 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; 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; 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; 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; 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; 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, lte_tdd_bands:Vec, nr_fdd_bands:Vec, nr_tdd_bands:Vec] (models.rs:377); exact handler backend/src/handlers.rs:1372-1392', responseSchemaEvidence: 'success/error payload evidenced by ApiResponse; 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; 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; 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; 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; 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; 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; 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; 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; 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; 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; 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; 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, ipv4_mode:Option, ipv4_address:Option, ipv4_prefix:Option, ipv4_gateway:Option] (models.rs:620); exact handler backend/src/handlers.rs:1994-2013', responseSchemaEvidence: 'success/error payload evidenced by ApiResponse; 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; 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; 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; 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; 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; 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; 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; 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, protocol:Option, username:Option, password:Option, auth_method:Option] (models.rs:795); exact handler backend/src/handlers.rs:1507-1571', responseSchemaEvidence: 'success/error payload evidenced by ApiResponse; 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, arfcn:Option] (models.rs:405); exact handler backend/src/handlers.rs:1585-1603', responseSchemaEvidence: 'success/error payload evidenced by ApiResponse; 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; 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; 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; 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; 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; 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; 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; 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; 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] (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, asset_url:Option] (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; 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; exact exact handler backend/src/handlers.rs:524-598', responseSchemaEvidence: 'success/error payload evidenced by ApiResponse; 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, imei:Option] (models.rs:174); exact handler backend/src/handlers.rs:803-1071', responseSchemaEvidence: 'success/error payload evidenced by ApiResponse; 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; 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; 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; 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; 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; 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; 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; 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, microphone_volume:Option, muted:Option] (models.rs:856); exact handler backend/src/handlers.rs:2908-2922', responseSchemaEvidence: 'success/error payload evidenced by ApiResponse; 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; 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] (models.rs:891); exact handler backend/src/handlers.rs:2933-2943', responseSchemaEvidence: 'success/error payload evidenced by ApiResponse; 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; 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; 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>); 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>); 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>); 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; 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; 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; 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] (models.rs:918); exact handler backend/src/handlers.rs:2407-2434', responseSchemaEvidence: 'Rust return (StatusCode, Json>); 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>); 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>); 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, phone_numbers:Vec] (models.rs:934); exact handler backend/src/handlers.rs:2551-2578', responseSchemaEvidence: 'Rust return (StatusCode, Json>); 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>); 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>); 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>); 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; 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>); 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>, ); 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, rules:Vec, log_cleanup:NotificationLogCleanupConfig] (config.rs:548); exact handler backend/src/handlers.rs:3655-3672', responseSchemaEvidence: 'Rust return (StatusCode, Json>); 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>, ); 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>, ); 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>); 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>, ); 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>); 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>); 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>); 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>); 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>, ); 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] (config.rs:1394); exact handler backend/src/handlers.rs:3982-3999', responseSchemaEvidence: 'Rust return (StatusCode, Json>); 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>, ); 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>); 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>); 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 success payload/error envelope; success/error payload evidenced by ApiResponse; 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] (models.rs:986); exact handler backend/src/handlers.rs:3795-3825', responseSchemaEvidence: 'success/error payload evidenced by ApiResponse; 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] (models.rs:986); exact handler backend/src/handlers.rs:3828-3889', responseSchemaEvidence: 'success/error payload evidenced by ApiResponse; 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; 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; 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; 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>); 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; 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>); 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; 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; 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[]> = { '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, 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)), }; });