62 KiB
62 KiB
SimAdmin upstream API static-contract evidence matrix — 58e2204
- Audited commit:
58e220411d6599609f0eeda01eb7016e9212f970. - Coverage: 100 paths / 117 operations (GET 50, POST 62, DELETE 5); IA domain/owner mapping remains frozen.
- Independent snapshot: repository fixture
packages/operation-registry/test/fixtures/upstream-58e2204/contains whole upstream source and all 82 Bruno.brufiles.manifest.jsonrecords commit and SHA-256 for every whole file; tests re-hash files and exact handler slices without/tmpor registry-derived content. - Exact handlers: each
handlerRangestarts at the async function signature and ends at its brace-matched closing brace. Helper evidence, when needed, belongs insupplementalRanges, never in the handler digest. - Response evidence: explicit Rust returns,
ApiResponse<T>payload construction, or dynamic JSON construction are implementation evidence, not real response fixtures or an exhaustive schema.opaque-into-responsecount: 0. - Bruno evidence: 67/117 operations reference parsed Bruno evidence from 82 files. This does not claim that 82 files cover all 117 operations; operations without Bruno are marked route+handler(+model).
- Sensitive fields: every item carries snapshot-rebuildable evidence (file/range/SHA-256/symbol/model field), with explicit container model chains for array paths and exact handler slices for dynamic keys.
- Boundary / semanticBindingReview: structural checks prove source/model/field relationships, not semantic payload intent. Each registry operation is marked
semanticBindingReview: 'reviewed-phase-0.2'; manual review fixes the method/path/handler/payload-symbol tuple, especially high-value response bindings. - Policy: every R2 requires at least explicit confirmation; every R3 requires strong confirmation. Auth/session-sensitive operations use dedicated flow/replay protections.
- Phase 0.3 真实响应样本 disposition: the per-operation
responseFixtureStatus=pending-phase-0.3value is retained as a frozen Phase 0.2 claim and is deprecated for current coverage decisions. The authoritative current value isruntimeFixtureStatusinpackages/operation-registry/src/acceptance-58e2204.ts, derived from the collector selection and real fixture manifest. Static evidence is not a runtime fixture.
Whole-file snapshot SHA-256
See upstream-58e2204/manifest.json; it is machine-verified on every test run and is the authoritative complete whole-file SHA list.
All operations
| Method | Path | operationId | Domain | uiOwner | Handler | Evidence level | Content-Type | Idempotency | Risk / policy | Request contract | Response contract | Evidence digest |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
GET |
/api/device |
getDevice |
device-system | overview | get_device_info |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:1076-1090 | ApiResponse success payload/error envelope; success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:1076-1090 | 7b4d3ba9a85015e5 |
GET |
/api/sim |
getSim |
sim | overview | get_sim_info |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:1126-1145 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:1126-1145 | db5280e4e6d37c43 |
POST |
/api/sim/details/refresh |
postSimDetailsRefresh |
sim | overview | refresh_sim_details_handler |
route+handler | none | non-idempotent | R1 / command / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:1148-1164 | dynamic-json construction in exact handler backend/src/handlers.rs:1148-1164; field shape is implementation evidence only | ab04a42ae36c3495 |
POST |
/api/sim/cache |
postSimCache |
sim | overview | update_sim_cache_handler |
route+handler+model | application/json | conditional | R1 / command / confirm:none / registeredOperation | body extractor UpdateSimCacheRequest fields [phone_number:Option, sms_center:Option] (models.rs:1036); exact handler backend/src/handlers.rs:1167-1213 | success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:1167-1213 | b2b5f366ff8b133d |
GET |
/api/network |
getNetwork |
cellular | cellular | get_network_info |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:1218-1232 | ApiResponse success payload/error envelope; success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:1218-1232 | 5d02208a69b79024 |
GET |
/api/cells |
getCells |
cellular | cellular | get_cells |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:1235-1249 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:1235-1249 | 2a0eb9db873a461a |
POST |
/api/cell-monitor/start |
postCellMonitorStart |
cellular | cellular | start_cell_monitor_handler |
route+handler | none | conditional | R1 / command / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:1252-1282 | success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:1252-1282 | c70d5916a800de22 |
POST |
/api/cell-monitor/stop |
postCellMonitorStop |
cellular | cellular | stop_cell_monitor_handler |
route+handler | none | conditional | R1 / command / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:1285-1312 | success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:1285-1312 | 81303fb59efb78b8 |
GET |
/api/radio-mode |
getRadioMode |
radio-lock | cellular | get_radio_mode_handler |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:1315-1329 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:1315-1329 | caba610280c2850f |
POST |
/api/radio-mode |
postRadioMode |
radio-lock | cellular | set_radio_mode_handler |
route+handler+model+bruno | application/json | conditional | R1 / command / confirm:none / registeredOperation | body extractor RadioModeRequest fields [mode:RadioMode] (models.rs:351); exact handler backend/src/handlers.rs:1332-1352 | success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:1332-1352 | c41c6134fe1f28b0 |
GET |
/api/band-lock |
getBandLock |
radio-lock | cellular | get_band_lock_handler |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:1355-1369 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:1355-1369 | 6130c68b619423b3 |
POST |
/api/band-lock |
postBandLock |
radio-lock | cellular | set_band_lock_handler |
route+handler+model+bruno | application/json | conditional | R2 / job / confirm:explicit / registeredOperation | 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 | success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:1372-1392 | 04504f8b9b2d528e |
GET |
/api/network/interfaces |
getNetworkInterfaces |
device-network | device-network | get_network_interfaces_info |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:1619-1644 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:1619-1644 | a1ac88c365ed70bf |
GET |
/api/network/connection-addresses |
getNetworkConnectionAddresses |
device-network | device-network | get_network_connection_addresses |
route+handler | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:1647-1666 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:1647-1666 | a5f28ff95121c097 |
GET |
/api/device-network/ddns/config |
getDeviceNetworkDdnsConfig |
device-network | device-network | get_device_ddns_config_handler |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:1669-1679 | dynamic-json construction in exact handler backend/src/handlers.rs:1669-1679; field shape is implementation evidence only | 4ec8e855d61695c9 |
POST |
/api/device-network/ddns/config |
postDeviceNetworkDdnsConfig |
device-network | device-network | set_device_ddns_config_handler |
route+handler+model+bruno | application/json | conditional | R2 / job / confirm:explicit / registeredOperation | 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 | success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:1682-1721 | 10137722721a3ef9 |
GET |
/api/device-network/ddns/status |
getDeviceNetworkDdnsStatus |
device-network | device-network | get_device_ddns_status_handler |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:1750-1757 | dynamic-json construction in exact handler backend/src/handlers.rs:1750-1757; field shape is implementation evidence only | 02494bf7928a9a23 |
POST |
/api/device-network/ddns/sync |
postDeviceNetworkDdnsSync |
device-network | device-network | sync_device_ddns_handler |
route+handler+bruno | none | conditional | R1 / command / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:1760-1781 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:1760-1781 | 43cf9573e2b43aaf |
GET |
/api/device-network/ddns/logs |
getDeviceNetworkDdnsLogs |
device-network | device-network | get_device_ddns_logs_handler |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:1784-1790 | dynamic-json construction in exact handler backend/src/handlers.rs:1784-1790; field shape is implementation evidence only | ac80f3ada641ca13 |
POST |
/api/device-network/ddns/logs/clear |
postDeviceNetworkDdnsLogsClear |
device-network | device-network | clear_device_ddns_logs_handler |
route+handler+bruno | none | conditional | R2 / job / confirm:explicit / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:1793-1802 | dynamic-json construction in exact handler backend/src/handlers.rs:1793-1802; field shape is implementation evidence only | 8ebb7d7cfe772a4e |
GET |
/api/device-network/wlan/status |
getDeviceNetworkWlanStatus |
device-network | device-network | get_device_wlan_status_handler |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:1805-1819 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:1805-1819 | 66741c07471de1f7 |
POST |
/api/device-network/wlan/enabled |
postDeviceNetworkWlanEnabled |
device-network | device-network | set_device_wlan_enabled_handler |
route+handler+model+bruno | application/json | conditional | R1 / command / confirm:none / registeredOperation | body extractor WlanEnabledRequest fields [enabled:bool] (models.rs:606); exact handler backend/src/handlers.rs:1822-1841 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:1822-1841 | b6cc1238ca609208 |
POST |
/api/device-network/wlan/scan |
postDeviceNetworkWlanScan |
device-network | device-network | scan_device_wlan_handler |
route+handler+bruno | none | non-idempotent | R1 / command / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:1844-1858 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:1844-1858 | de90691d7c57a4e9 |
GET |
/api/device-network/wlan/profiles |
getDeviceNetworkWlanProfiles |
device-network | device-network | get_device_wlan_profiles_handler |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:1861-1875 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:1861-1875 | caadf1fc1c436c63 |
POST |
/api/device-network/wlan/forget |
postDeviceNetworkWlanForget |
device-network | device-network | forget_device_wlan_handler |
route+handler+model+bruno | application/json | conditional | R2 / job / confirm:explicit / registeredOperation | body extractor WlanForgetRequest fields [uuid:String, connection_id:String] (models.rs:635); exact handler backend/src/handlers.rs:1878-1897 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:1878-1897 | f5142f819f6da442 |
POST |
/api/device-network/wlan/connect |
postDeviceNetworkWlanConnect |
device-network | device-network | connect_device_wlan_handler |
route+handler+model+bruno | application/json | non-idempotent | R1 / command / confirm:none / registeredOperation | body extractor WlanConnectRequest fields [ssid:String, password:String, auto_join:bool] (models.rs:611); exact handler backend/src/handlers.rs:1900-1955 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:1900-1955 | 9c422666a3db49cd |
POST |
/api/device-network/wlan/disconnect |
postDeviceNetworkWlanDisconnect |
device-network | device-network | disconnect_device_wlan_handler |
route+handler+bruno | none | non-idempotent | R1 / command / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:1958-1991 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:1958-1991 | 719a709dc8509a35 |
POST |
/api/device-network/wlan/profile |
postDeviceNetworkWlanProfile |
device-network | device-network | save_device_wlan_profile_handler |
route+handler+model+bruno | application/json | conditional | R1 / command / confirm:none / registeredOperation | 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 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:1994-2013 | b3180f55af718c04 |
GET |
/api/network/signal-strength |
getNetworkSignalStrength |
cellular | cellular | get_signal_strength_handler |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:2016-2030 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:2016-2030 | 2c04c31da8b4160b |
GET |
/api/location/cell-info |
getLocationCellInfo |
cellular | cellular | get_cell_location_handler |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:1395-1409 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:1395-1409 | fc748f05e03bf684 |
GET |
/api/network/operators |
getNetworkOperators |
cellular | cellular | get_network_operators |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:1412-1426 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:1412-1426 | d3b30db8a501b92a |
GET |
/api/network/operators/scan |
getNetworkOperatorsScan |
cellular | cellular | scan_network_operators |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:1429-1443 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:1429-1443 | 4a8bfbd38a943df8 |
POST |
/api/network/register-manual |
postNetworkRegisterManual |
cellular | cellular | register_network_manual |
route+handler+model+bruno | application/json | non-idempotent | R2 / job / confirm:explicit / registeredOperation | body extractor ManualRegisterRequest fields [mccmnc:String] (models.rs:771); exact handler backend/src/handlers.rs:1446-1466 | success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:1446-1466 | 8b78cc782499ff83 |
POST |
/api/network/register-auto |
postNetworkRegisterAuto |
cellular | cellular | register_network_auto |
route+handler+bruno | none | non-idempotent | R2 / job / confirm:explicit / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:1469-1486 | success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:1469-1486 | 431aabcc9852603b |
GET |
/api/apn |
getApn |
data-connection | cellular | get_apn_list_handler |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:1489-1504 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:1489-1504 | 798953ca7e3857d0 |
POST |
/api/apn |
postApn |
data-connection | cellular | set_apn_handler |
route+handler+model+bruno | application/json | conditional | R1 / command / confirm:none / registeredOperation | 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 | success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:1507-1571 | 6edced468c5f3bcb |
GET |
/api/cell-lock |
getCellLock |
radio-lock | cellular | get_cell_lock_status_handler |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:1574-1582 | dynamic-json construction in exact handler backend/src/handlers.rs:1574-1582; field shape is implementation evidence only | fe4b4aaedc6e5ccf |
POST |
/api/cell-lock |
postCellLock |
radio-lock | cellular | set_cell_lock_handler |
route+handler+model+bruno | application/json | conditional | R2 / job / confirm:explicit / registeredOperation | 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 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:1585-1603 | 29ff2739b7d0b584 |
POST |
/api/cell-lock/unlock-all |
postCellLockUnlockAll |
radio-lock | cellular | unlock_all_cells_handler |
route+handler+bruno | none | conditional | R2 / job / confirm:explicit / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:1606-1616 | dynamic-json construction in exact handler backend/src/handlers.rs:1606-1616; field shape is implementation evidence only | 390162e5ce89c095 |
GET |
/api/data |
getData |
data-connection | cellular | get_data_status |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:2035-2062 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:2035-2062 | 43f00a519bd67c3a |
POST |
/api/data |
postData |
data-connection | cellular | set_data_status |
route+handler+model+bruno | application/json | conditional | R1 / command / confirm:none / registeredOperation | body extractor DataConnectionRequest fields [active:bool] (models.rs:234); exact handler backend/src/handlers.rs:2065-2131 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:2065-2131 | f1653cfe4442172c |
GET |
/api/roaming |
getRoaming |
data-connection | cellular | get_roaming_status_handler |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:2172-2193 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:2172-2193 | 687ff0cdb729645a |
POST |
/api/roaming |
postRoaming |
data-connection | cellular | set_roaming_status_handler |
route+handler+model+bruno | application/json | conditional | R1 / command / confirm:none / registeredOperation | body extractor RoamingRequest fields [allowed:bool] (models.rs:244); exact handler backend/src/handlers.rs:2196-2247 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:2196-2247 | b18b5c87eb24ccc9 |
GET |
/api/airplane-mode |
getAirplaneMode |
data-connection | cellular | get_airplane_mode_handler |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:2315-2329 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:2315-2329 | 243c2a63fd99d45c |
POST |
/api/airplane-mode |
postAirplaneMode |
data-connection | cellular | set_airplane_mode_handler |
route+handler+model+bruno | application/json | conditional | R1 / command / confirm:none / registeredOperation | body extractor AirplaneModeRequest fields [enabled:bool] (models.rs:255); exact handler backend/src/handlers.rs:2250-2312 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:2250-2312 | 5efb8a55c495ea0b |
POST |
/api/baseband/restart |
postBasebandRestart |
data-connection | cellular | restart_baseband_handler |
route+handler | none | non-idempotent | R3 / job / confirm:strong / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:2133-2159 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:2133-2159 | ef18782a4b21d5b4 |
GET |
/api/baseband/restart/status |
getBasebandRestartStatus |
data-connection | cellular | get_baseband_restart_status_handler |
route+handler | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:2161-2169 | dynamic-json construction in exact handler backend/src/handlers.rs:2161-2169; field shape is implementation evidence only | 736cc766f31d5d71 |
GET |
/api/work-mode |
getWorkMode |
workmode-esim | esim | get_work_mode_handler |
route+handler | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:352-365 | dynamic-json construction in exact handler backend/src/handlers.rs:352-365; field shape is implementation evidence only | f2d3dca3f43326f8 |
POST |
/api/work-mode |
postWorkMode |
workmode-esim | esim | set_work_mode_handler |
route+handler+model | application/json | conditional | R2 / job / confirm:explicit / registeredOperation | body extractor WorkModeRequest fields [mode:WorkMode, confirm:bool] (models.rs:57); exact handler backend/src/handlers.rs:368-405 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:368-405 | cf17a54e0df74a9d |
GET |
/api/esim/config |
getEsimConfig |
workmode-esim | esim | get_esim_config_handler |
route+handler | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:456-462 | dynamic-json construction in exact handler backend/src/handlers.rs:456-462; field shape is implementation evidence only | 1be6b526e1a78451 |
POST |
/api/esim/config |
postEsimConfig |
workmode-esim | esim | set_esim_config_handler |
route+handler+model | application/json | conditional | R2 / job / confirm:explicit / registeredOperation | 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 | dynamic-json construction in exact handler backend/src/handlers.rs:465-482; field shape is implementation evidence only | b497f06687977d9f |
GET |
/api/esim/lpac/status |
getEsimLpacStatus |
workmode-esim | esim | get_esim_lpac_status_handler |
route+handler | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:408-416 | dynamic-json construction in exact handler backend/src/handlers.rs:408-416; field shape is implementation evidence only | a4d5143d1f83089b |
POST |
/api/esim/lpac/repair |
postEsimLpacRepair |
workmode-esim | esim | repair_esim_lpac_handler |
route+handler+model | application/json | conditional | R2 / job / confirm:explicit / registeredOperation | body extractor EsimLpacRepairRequest fields [proxy_prefix:Option, asset_url:Option] (models.rs:153); exact handler backend/src/handlers.rs:419-453 | dynamic-json construction in exact handler backend/src/handlers.rs:419-453; field shape is implementation evidence only | 4d88af6126732e94 |
GET |
/api/esim/euicc |
getEsimEuicc |
workmode-esim | esim | get_esim_euicc_handler |
route+handler | none | safe | R0 / query / confirm:none / registeredOperation | query extractor std::collections::HashMap<String, String>; exact exact handler backend/src/handlers.rs:485-521 | dynamic-json construction in exact handler backend/src/handlers.rs:485-521; field shape is implementation evidence only | 7bb950b7fe21268d |
GET |
/api/esim/profiles |
getEsimProfiles |
workmode-esim | esim | get_esim_profiles_handler |
route+handler | none | safe | R0 / query / confirm:none / registeredOperation | query extractor std::collections::HashMap<String, String>; exact exact handler backend/src/handlers.rs:524-598 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:524-598 | 07f60eddaa9d20ff |
POST |
/api/esim/profiles |
postEsimProfiles |
workmode-esim | esim | download_esim_profile_handler |
route+handler+model | application/json | conditional | R1 / command / confirm:none / registeredOperation | 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 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:803-1071 | fe41273a15be55b3 |
POST |
/api/esim/profiles/{iccid}/enable |
postEsimProfilesIccidEnable |
workmode-esim | esim | enable_esim_profile_handler |
route+handler | none | conditional | R1 / command / confirm:none / registeredOperation | path extractor String; exact handler backend/src/handlers.rs:601-726 | dynamic-json construction in exact handler backend/src/handlers.rs:601-726; field shape is implementation evidence only | d54705546ca3bf2a |
POST |
/api/esim/profiles/{iccid}/rename |
postEsimProfilesIccidRename |
workmode-esim | esim | rename_esim_profile_handler |
route+handler+model | application/json | conditional | R1 / command / confirm:none / registeredOperation | body extractor EsimRenameRequest fields [name:String] (models.rs:169); path extractor String; exact handler backend/src/handlers.rs:729-750 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:729-750 | 0d5cb68158e1e6c2 |
DELETE |
/api/esim/profiles/{iccid} |
deleteEsimProfilesIccid |
workmode-esim | esim | delete_esim_profile_handler |
route+handler | none | idempotent | R3 / job / confirm:strong / registeredOperation | path extractor String; exact handler backend/src/handlers.rs:753-780 | dynamic-json construction in exact handler backend/src/handlers.rs:753-780; field shape is implementation evidence only | 8ad25b4826f75d27 |
GET |
/api/calls |
getCalls |
calls | calls | get_calls_handler |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:2634-2655 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:2634-2655 | 21e77021b749876b |
POST |
/api/call/dial |
postCallDial |
calls | calls | dial_call_handler |
route+handler+model+bruno | application/json | non-idempotent | R1 / command / confirm:none / registeredOperation | body extractor MakeCallRequest fields [phone_number:String] (models.rs:810); exact handler backend/src/handlers.rs:2657-2689 | success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:2657-2689 | c440bb90bb4373b3 |
POST |
/api/call/hangup |
postCallHangup |
calls | calls | hangup_call_handler |
route+handler+model+bruno | application/json | non-idempotent | R1 / command / confirm:none / registeredOperation | body extractor HangupCallRequest fields [path:String] (models.rs:830); exact handler backend/src/handlers.rs:2691-2725 | success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:2691-2725 | cffdc6b2f949af4d |
POST |
/api/call/hangup-all |
postCallHangupAll |
calls | calls | hangup_all_calls_handler |
route+handler+bruno | none | non-idempotent | R1 / command / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:2727-2760 | success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:2727-2760 | 3af8fab7bb4c0437 |
POST |
/api/call/answer |
postCallAnswer |
calls | calls | answer_call_handler |
route+handler+model+bruno | application/json | non-idempotent | R1 / command / confirm:none / registeredOperation | body extractor HangupCallRequest fields [path:String] (models.rs:830); exact handler backend/src/handlers.rs:2762-2789 | success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:2762-2789 | cfcda6600d9ba27c |
GET |
/api/call/volume |
getCallVolume |
calls | calls | get_call_volume_handler |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:2899-2906 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:2899-2906 | 4f96c358e70ba5b3 |
POST |
/api/call/volume |
postCallVolume |
calls | calls | set_call_volume_handler |
route+handler+model+bruno | application/json | conditional | R1 / command / confirm:none / registeredOperation | body extractor SetCallVolumeRequest fields [speaker_volume:Option, microphone_volume:Option, muted:Option] (models.rs:856); exact handler backend/src/handlers.rs:2908-2922 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:2908-2922 | 9f2e624358e53aaf |
GET |
/api/call/forwarding |
getCallForwarding |
calls | calls | get_call_forwarding_handler |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:2924-2931 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:2924-2931 | f7916eb4c5c484e5 |
POST |
/api/call/forwarding |
postCallForwarding |
calls | calls | set_call_forwarding_handler |
route+handler+model+bruno | application/json | conditional | R1 / command / confirm:none / registeredOperation | body extractor SetCallForwardingRequest fields [forward_type:String, number:String, timeout:Option] (models.rs:891); exact handler backend/src/handlers.rs:2933-2943 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:2933-2943 | ddc8b848bccd96aa |
GET |
/api/call/settings |
getCallSettings |
calls | calls | get_call_settings_handler |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:2852-2866 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:2852-2866 | 893ccecb6c077f7e |
POST |
/api/call/settings |
postCallSettings |
calls | calls | set_call_settings_handler |
route+handler+model+bruno | application/json | conditional | R2 / job / confirm:explicit / registeredOperation | body extractor SetCallSettingRequest fields [property:String, value:String] (models.rs:875); exact handler backend/src/handlers.rs:2868-2897 | success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:2868-2897 | 55ab650b3c53b78a |
GET |
/api/call/history |
getCallHistory |
calls | calls | get_call_history_handler |
route+handler+model | none | safe | R0 / query / confirm:none / registeredOperation | query extractor CallHistoryRequest fields [limit:i64, offset:i64] (models.rs:835); exact handler backend/src/handlers.rs:2791-2813 | Rust return (StatusCode, Json<ApiResponse>); exact handler backend/src/handlers.rs:2791-2813 | 1def94db4c3d848e |
DELETE |
/api/call/history/{id} |
deleteCallHistoryId |
calls | calls | delete_call_history_handler |
route+handler+bruno | none | idempotent | R3 / job / confirm:strong / registeredOperation | path extractor i64; exact handler backend/src/handlers.rs:2815-2832 | Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/handlers.rs:2815-2832 | defa60d157769310 |
POST |
/api/call/history/clear |
postCallHistoryClear |
calls | calls | clear_call_history_handler |
route+handler+bruno | none | conditional | R3 / job / confirm:strong / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:2834-2850 | Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/handlers.rs:2834-2850 | b0e0002012256b5d |
GET |
/api/ims/status |
getImsStatus |
calls | calls | get_ims_status_handler |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:2945-2952 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:2945-2952 | e533ac5c9e7bc694 |
GET |
/api/voicemail/status |
getVoicemailStatus |
calls | calls | get_voicemail_status_handler |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:2954-2961 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:2954-2961 | 837b8fbc971099b9 |
POST |
/api/sms/send |
postSmsSend |
messages | messages | send_sms_handler |
route+handler+model+bruno | application/json | non-idempotent | R2 / job / confirm:explicit / registeredOperation | body extractor SendSmsRequest fields [phone_number:String, content:String] (models.rs:912); exact handler backend/src/handlers.rs:2373-2404 | success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:2373-2404 | 6cd7eaa5e1a1f939 |
GET |
/api/sms/list |
getSmsList |
messages | messages | get_sms_list_handler |
route+handler+model | none | safe | R0 / query / confirm:none / registeredOperation | query extractor SmsListRequest fields [limit:i64, offset:i64, direction:Option] (models.rs:918); exact handler backend/src/handlers.rs:2407-2434 | Rust return (StatusCode, Json<ApiResponse>); exact handler backend/src/handlers.rs:2407-2434 | abbc14adc02b2f5f |
GET |
/api/sms/conversation |
getSmsConversation |
messages | messages | get_sms_conversation_handler |
route+handler+model | none | safe | R0 / query / confirm:none / registeredOperation | query extractor SmsConversationRequest fields [phone_number:String, limit:i64] (models.rs:927); exact handler backend/src/handlers.rs:2437-2458 | Rust return (StatusCode, Json<ApiResponse>); exact handler backend/src/handlers.rs:2437-2458 | e0747d062889fe8c |
GET |
/api/sms/stats |
getSmsStats |
messages | messages | get_sms_stats_handler |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:2461-2477 | Rust return (StatusCode, Json<ApiResponse>); exact handler backend/src/handlers.rs:2461-2477 | bd62f399815cb0d1 |
POST |
/api/sms/batch-delete |
postSmsBatchDelete |
messages | messages | delete_sms_batch_handler |
route+handler+model | application/json | conditional | R3 / job / confirm:strong / registeredOperation | body extractor SmsBatchDeleteRequest fields [ids:Vec, phone_numbers:Vec] (models.rs:934); exact handler backend/src/handlers.rs:2551-2578 | Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/handlers.rs:2551-2578 | 94c5c83487401203 |
DELETE |
/api/sms/conversation/{phone_number} |
deleteSmsConversationPhoneNumber |
messages | messages | delete_sms_conversation_handler |
route+handler | none | idempotent | R3 / job / confirm:strong / registeredOperation | path extractor String; exact handler backend/src/handlers.rs:2528-2548 | Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/handlers.rs:2528-2548 | 8abd673088da8720 |
DELETE |
/api/sms/message/{id} |
deleteSmsMessageId |
messages | messages | delete_sms_message_handler |
route+handler | none | idempotent | R3 / job / confirm:strong / registeredOperation | path extractor i64; exact handler backend/src/handlers.rs:2508-2525 | Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/handlers.rs:2508-2525 | 8edc9f89854b5c8d |
POST |
/api/sms/clear |
postSmsClear |
messages | messages | clear_sms_handler |
route+handler+bruno | none | conditional | R3 / job / confirm:strong / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:2480-2505 | Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/handlers.rs:2480-2505 | 8c536214c43b65fc |
GET |
/api/stats |
getStats |
device-system | overview | get_system_stats |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:3272-3288 | dynamic-json construction in exact handler backend/src/handlers.rs:3272-3288; field shape is implementation evidence only | 94834f33d10be4b6 |
GET |
/api/stats/cpu |
getStatsCpu |
device-system | overview | get_cpu_info |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:3291-3302 | success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:3291-3302 | 9f24be45c5c8df7a |
GET |
/api/connectivity |
getConnectivity |
device-system | overview | get_connectivity_check |
route+handler | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:3305-3322 | Rust return (StatusCode, Json<ApiResponse>); exact handler backend/src/handlers.rs:3305-3322 | 42ba5f81f052b992 |
POST |
/api/system/reboot |
postSystemReboot |
device-system | overview | system_reboot |
route+handler+model+bruno | application/json | non-idempotent | R3 / job / confirm:strong / registeredOperation | body extractor SystemRebootRequest fields [delay_seconds:u32] (models.rs:422); exact handler backend/src/handlers.rs:3381-3406 | dynamic-json construction in exact handler backend/src/handlers.rs:3381-3406; field shape is implementation evidence only | 362737633fd01332 |
POST |
/api/service/restart |
postServiceRestart |
device-system | overview | restart_service_handler |
route+handler | none | non-idempotent | R3 / job / confirm:strong / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:3578-3601 | dynamic-json construction in exact handler backend/src/handlers.rs:3578-3601; field shape is implementation evidence only | 712a81c6cca94e0c |
GET |
/api/notifications/config |
getNotificationsConfig |
notifications | notifications | get_notification_config_handler |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:3641-3652 | Rust return ( StatusCode, Json<ApiResponsecrate::config::NotificationConfig>, ); exact handler backend/src/handlers.rs:3641-3652 | 96344b8b2d1b8818 |
POST |
/api/notifications/config |
postNotificationsConfig |
notifications | notifications | set_notification_config_handler |
route+handler+model+bruno | application/json | conditional | R2 / job / confirm:explicit / registeredOperation | 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 | Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/handlers.rs:3655-3672 | 5fc4fbfff68050e0 |
POST |
/api/notifications/test/{channel} |
postNotificationsTestChannel |
notifications | notifications | test_notification_channel_handler |
route+handler | none | non-idempotent | R2 / job / confirm:explicit / registeredOperation | path extractor String; exact handler backend/src/handlers.rs:3675-3704 | Rust return ( StatusCode, Json<ApiResponsecrate::models::WebhookTestResponse>, ); exact handler backend/src/handlers.rs:3675-3704 | df28427afab1724a |
GET |
/api/notifications/logs |
getNotificationsLogs |
notifications | notifications | get_notification_logs_handler |
route+handler+model | none | safe | R0 / query / confirm:none / registeredOperation | 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 | Rust return ( StatusCode, Json<ApiResponsecrate::db::NotificationLogsResponse>, ); exact handler backend/src/handlers.rs:3709-3734 | da933f5e679cb9e1 |
POST |
/api/notifications/logs/clear |
postNotificationsLogsClear |
notifications | notifications | clear_notification_logs_handler |
route+handler | none | conditional | R3 / job / confirm:strong / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:3737-3760 | Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/handlers.rs:3737-3760 | 04de36a4268a3ab6 |
GET |
/api/notifications/queue |
getNotificationsQueue |
notifications | notifications | get_notification_queue_handler |
route+handler+model | none | safe | R0 / query / confirm:none / registeredOperation | query extractor NotificationQueueQuery fields [limit:i64] (notification_queue.rs:14); exact handler backend/src/notification_queue.rs:24-41 | Rust return ( StatusCode, Json<ApiResponsecrate::db::NotificationQueueResponse>, ); exact handler backend/src/notification_queue.rs:24-41 | babc88061bcb3386 |
POST |
/api/notifications/queue/retry-all |
postNotificationsQueueRetryAll |
notifications | notifications | retry_all_notification_queue_handler |
route+handler | none | non-idempotent | R2 / job / confirm:explicit / registeredOperation | none; no body/query/path extractor; exact handler backend/src/notification_queue.rs:84-100 | Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/notification_queue.rs:84-100 | f58e1be1cbf6a022 |
POST |
/api/notifications/queue/clear |
postNotificationsQueueClear |
notifications | notifications | clear_notification_queue_handler |
route+handler | none | conditional | R3 / job / confirm:strong / registeredOperation | none; no body/query/path extractor; exact handler backend/src/notification_queue.rs:103-119 | Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/notification_queue.rs:103-119 | 2501068f6741e02e |
DELETE |
/api/notifications/queue/{id} |
deleteNotificationsQueueId |
notifications | notifications | delete_notification_queue_item_handler |
route+handler | none | idempotent | R3 / job / confirm:strong / registeredOperation | path extractor i64; exact handler backend/src/notification_queue.rs:64-81 | Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/notification_queue.rs:64-81 | 6b845ad2da8f319d |
POST |
/api/notifications/queue/{id}/retry |
postNotificationsQueueIdRetry |
notifications | notifications | retry_notification_queue_item_handler |
route+handler | none | non-idempotent | R2 / job / confirm:explicit / registeredOperation | path extractor i64; exact handler backend/src/notification_queue.rs:44-61 | Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/notification_queue.rs:44-61 | 068be5777b9d8f78 |
GET |
/api/automation/config |
getAutomationConfig |
automation | automation | get_automation_config_handler |
route+handler | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:3968-3979 | Rust return ( StatusCode, Json<ApiResponsecrate::config::AutomationConfig>, ); exact handler backend/src/handlers.rs:3968-3979 | eed75ffb9545cf5e |
POST |
/api/automation/config |
postAutomationConfig |
automation | automation | set_automation_config_handler |
route+handler+model | application/json | conditional | R2 / job / confirm:explicit / registeredOperation | body extractor crate::config::AutomationConfig fields [enabled:bool, tasks:Vec] (config.rs:1394); exact handler backend/src/handlers.rs:3982-3999 | Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/handlers.rs:3982-3999 | 7f324660f7624a52 |
GET |
/api/automation/logs |
getAutomationLogs |
automation | automation | get_automation_logs_handler |
route+handler+model | none | safe | R0 / query / confirm:none / registeredOperation | 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 | Rust return ( StatusCode, Json<ApiResponsecrate::db::AutomationLogsResponse>, ); exact handler backend/src/handlers.rs:4002-4027 | b6cacc95a374e31a |
POST |
/api/automation/logs/clear |
postAutomationLogsClear |
automation | automation | clear_automation_logs_handler |
route+handler | none | conditional | R3 / job / confirm:strong / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:4030-4053 | Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/handlers.rs:4030-4053 | 0912300e74c831ac |
POST |
/api/automation/test/{task_id} |
postAutomationTestTaskId |
automation | automation | test_automation_task_handler |
route+handler | none | non-idempotent | R2 / job / confirm:explicit / registeredOperation | path extractor String; exact handler backend/src/handlers.rs:4056-4146 | Rust return (StatusCode, Json<ApiResponse<serde_json::Value>>); exact handler backend/src/handlers.rs:4056-4146 | 091db790a51ab185 |
GET |
/api/ota/status |
getOtaStatus |
ota | ota | get_ota_status_handler |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:3763-3769 | dynamic-json construction in exact handler backend/src/handlers.rs:3763-3769; field shape is implementation evidence only | 89d8afa94cbad60c |
POST |
/api/ota/upload |
postOtaUpload |
ota | ota | upload_ota_handler |
route+handler | application/octet-stream | non-idempotent | R3 / job / confirm:strong / registeredOperation | bytes extractor axum::body::Bytes; exact exact handler backend/src/handlers.rs:3772-3792 | ApiResponse success payload/error envelope; success/error payload evidenced by ApiResponse; exact handler backend/src/handlers.rs:3772-3792 | becfb7dc7e9c1355 |
POST |
/api/ota/latest-release |
postOtaLatestRelease |
ota | ota | get_latest_ota_release_handler |
route+handler+model | application/json | non-idempotent | R1 / command / confirm:none / registeredOperation | body extractor crate::models::OtaOnlinePrepareRequest fields [proxy_prefix:Option] (models.rs:986); exact handler backend/src/handlers.rs:3795-3825 | success/error payload evidenced by ApiResponsecrate::models::OtaLatestReleaseResponse; exact handler backend/src/handlers.rs:3795-3825 | 61083109860620e5 |
POST |
/api/ota/online-prepare |
postOtaOnlinePrepare |
ota | ota | prepare_online_ota_handler |
route+handler+model | application/json | non-idempotent | R2 / job / confirm:explicit / registeredOperation | body extractor crate::models::OtaOnlinePrepareRequest fields [proxy_prefix:Option] (models.rs:986); exact handler backend/src/handlers.rs:3828-3889 | success/error payload evidenced by ApiResponsecrate::models::OtaUploadResponse; exact handler backend/src/handlers.rs:3828-3889 | 6d70f80714b7f004 |
POST |
/api/ota/apply |
postOtaApply |
ota | ota | apply_ota_handler |
route+handler+model+bruno | application/json | non-idempotent | R3 / job / confirm:strong / registeredOperation | body extractor crate::models::OtaApplyRequest fields [restart_now:bool] (models.rs:1030); exact handler backend/src/handlers.rs:3892-3911 | success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:3892-3911 | 46c24f90fdb71e52 |
POST |
/api/ota/cancel |
postOtaCancel |
ota | ota | cancel_ota_handler |
route+handler+bruno | none | conditional | R1 / command / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:3914-3931 | success/error payload evidenced by ApiResponse<serde_json::Value>; exact handler backend/src/handlers.rs:3914-3931 | 9085b81dc3f85886 |
POST |
/api/auth/password |
postAuthPassword |
instances-auth | settings-instance | auth::change_password |
route+handler+model | application/json | conditional | R3 / job / confirm:strong / dedicatedFlow | body extractor ChangePasswordRequest fields [new_password:String] (auth.rs:59); exact handler backend/src/auth.rs:491-553 | success/error payload evidenced by ApiResponse; exact handler backend/src/auth.rs:491-553 | ec7372792586fd2a |
GET |
/api/auth/settings |
getAuthSettings |
instances-auth | settings-instance | auth::get_settings |
route+handler | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/auth.rs:555-570 | Rust return (StatusCode, Json<ApiResponse>); exact handler backend/src/auth.rs:555-570 | 035bdb5afbefdcb8 |
POST |
/api/auth/settings |
postAuthSettings |
instances-auth | settings-instance | auth::set_settings |
route+handler+model | application/json | conditional | R2 / job / confirm:explicit / dedicatedFlow | 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 | success/error payload evidenced by ApiResponse; exact handler backend/src/auth.rs:572-640 | 10b564c9437defd5 |
GET |
/api/health |
getHealth |
instances-auth | instances-new | health_check |
route+handler+bruno | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/handlers.rs:65-75 | dynamic-json construction in exact handler backend/src/handlers.rs:65-75; field shape is implementation evidence only | e169391fd5f376b8 |
GET |
/api/auth/status |
getAuthStatus |
instances-auth | instances-new | auth::status |
route+handler | none | safe | R0 / query / confirm:none / registeredOperation | none; no body/query/path extractor; exact handler backend/src/auth.rs:345-364 | Rust return (StatusCode, Json<ApiResponse>); exact handler backend/src/auth.rs:345-364 | 0ee683548f9f8036 |
POST |
/api/auth/setup |
postAuthSetup |
instances-auth | instances-new | auth::setup |
route+handler+model | application/json | conditional | R3 / job / confirm:strong / dedicatedFlow | body extractor LoginRequest fields [password:String] (auth.rs:54); exact handler backend/src/auth.rs:366-427 | success/error payload evidenced by ApiResponse; exact handler backend/src/auth.rs:366-427 | 1c0c5eb2cc77326d |
POST |
/api/auth/login |
postAuthLogin |
instances-auth | instances-new | auth::login |
route+handler+model | application/json | conditional | R1 / command / confirm:none / dedicatedFlow | body extractor LoginRequest fields [password:String] (auth.rs:54); exact handler backend/src/auth.rs:429-489 | success/error payload evidenced by ApiResponse; exact handler backend/src/auth.rs:429-489 | defd9444410e5b12 |
POST |
/api/auth/logout |
postAuthLogout |
instances-auth | settings-instance | auth::logout |
route+handler | none | conditional | R1 / command / confirm:none / dedicatedFlow | none body; HeaderMap carries simadmin_session cookie; exact handler backend/src/auth.rs:642-655; cookie name backend/src/auth.rs:43-43 | dynamic-json construction in exact handler backend/src/auth.rs:642-655; field shape is implementation evidence only | 1ccf5c295251b2a2 |
Sensitive-field audit ledger
This table is generated from the registry. Each row is an exact directional redaction contract; evidence details remain machine-readable in the registry.
| Method | Path | Direction | Sensitive path | Mode | Reason |
|---|---|---|---|---|---|
| GET | /api/sim |
response | $.response.data.iccid |
mask | SIM/subscriber identifier |
| GET | /api/sim |
response | $.response.data.imsi |
mask | SIM/subscriber identifier |
| GET | /api/sim |
response | $.response.data.phone_numbers |
mask | SIM/subscriber identifier |
| GET | /api/sim |
response | $.response.data.sms_center |
mask | SIM/subscriber identifier |
| POST | /api/sim/cache |
request | $.body.phone_number |
mask | subscriber contact value |
| POST | /api/sim/cache |
request | $.body.sms_center |
mask | subscriber contact value |
| GET | /api/device-network/ddns/config |
response | $.response.data.access_id |
mask | identifier or address |
| GET | /api/device-network/ddns/config |
response | $.response.data.access_secret |
drop | secret or message content |
| POST | /api/device-network/ddns/config |
request | $.body.access_id |
mask | identifier or address |
| POST | /api/device-network/ddns/config |
request | $.body.access_secret |
drop | secret or message content |
| GET | /api/device-network/wlan/status |
response | $.response.data.ssid |
mask | network identifier |
| GET | /api/device-network/wlan/status |
response | $.response.data.ipv4_addresses |
mask | network identifier |
| GET | /api/device-network/wlan/status |
response | $.response.data.ipv6_addresses |
mask | network identifier |
| POST | /api/device-network/wlan/scan |
response | $.response.data.networks[*].ssid |
mask | network identifier |
| POST | /api/device-network/wlan/scan |
response | $.response.data.networks[*].bssid |
mask | network identifier |
| GET | /api/device-network/wlan/profiles |
response | $.response.data.profiles[*].ssid |
mask | network identifier |
| POST | /api/device-network/wlan/connect |
request | $.body.ssid |
mask | network identifier |
| POST | /api/device-network/wlan/connect |
request | $.body.password |
drop | WLAN credential |
| GET | /api/apn |
response | $.response.data.contexts[*].username |
drop | APN credential |
| GET | /api/apn |
response | $.response.data.contexts[*].password |
drop | APN credential |
| POST | /api/apn |
request | $.body.username |
mask | identifier or address |
| POST | /api/apn |
request | $.body.password |
drop | secret or message content |
| GET | /api/esim/euicc |
response | $.response.data.eid |
mask | eUICC identifier |
| GET | /api/esim/profiles |
response | $.response.data.profiles[*].iccid |
mask | eSIM identifier |
| POST | /api/esim/profiles |
request | $.body.matching_id |
mask | identifier or address |
| POST | /api/esim/profiles |
request | $.body.confirmation_code |
drop | secret or message content |
| POST | /api/esim/profiles |
request | $.body.imei |
mask | identifier or address |
| GET | /api/calls |
response | $.response.data.calls[*].phone_number |
mask | call party |
| POST | /api/call/dial |
request | $.body.phone_number |
mask | identifier or address |
| GET | /api/call/forwarding |
response | $.response.data.voice_unconditional |
mask | forwarding destination |
| GET | /api/call/forwarding |
response | $.response.data.voice_busy |
mask | forwarding destination |
| GET | /api/call/forwarding |
response | $.response.data.voice_no_reply |
mask | forwarding destination |
| GET | /api/call/forwarding |
response | $.response.data.voice_not_reachable |
mask | forwarding destination |
| POST | /api/call/forwarding |
request | $.body.number |
mask | identifier or address |
| GET | /api/call/history |
response | $.response.data.records[*].phone_number |
mask | call party |
| GET | /api/voicemail/status |
response | $.response.data.mailbox_number |
mask | voicemail number |
| POST | /api/sms/send |
request | $.body.phone_number |
mask | identifier or address |
| POST | /api/sms/send |
request | $.body.content |
drop | secret or message content |
| GET | /api/sms/list |
response | $.response.data.messages[*].phone_number |
mask | message correspondent |
| GET | /api/sms/list |
response | $.response.data.messages[*].content |
drop | message body |
| GET | /api/sms/conversation |
query | $.query.phone_number |
mask | message correspondent |
| GET | /api/sms/conversation |
response | $.response.data.messages[*].phone_number |
mask | message correspondent |
| GET | /api/sms/conversation |
response | $.response.data.messages[*].content |
drop | message body |
| POST | /api/sms/batch-delete |
request | $.body.phone_numbers[*] |
mask | identifier or address |
| DELETE | /api/sms/conversation/{phone_number} |
path | $.path.phone_number |
mask | identifier or address |
| GET | /api/notifications/config |
response | $.response.data.channels[*].config |
mask | identifier or address |
| POST | /api/notifications/config |
request | $.body.channels[*].config |
mask | identifier or address |
| GET | /api/automation/config |
response | $.response.data.tasks[*].config |
mask | identifier or address |
| POST | /api/automation/config |
request | $.body.tasks[*].config |
mask | identifier or address |
| POST | /api/auth/password |
request | $.body.new_password |
drop | secret or message content |
| POST | /api/auth/password |
session | $.session.set-cookie |
drop | secret or message content |
| GET | /api/auth/settings |
session | $.session.cookie |
drop | secret or message content |
| POST | /api/auth/settings |
session | $.session.cookie |
drop | secret or message content |
| GET | /api/auth/status |
session | $.session.cookie |
drop | secret or message content |
| POST | /api/auth/setup |
request | $.body.password |
drop | secret or message content |
| POST | /api/auth/setup |
session | $.session.set-cookie |
drop | secret or message content |
| POST | /api/auth/login |
request | $.body.password |
drop | secret or message content |
| POST | /api/auth/login |
session | $.session.set-cookie |
drop | secret or message content |
| POST | /api/auth/logout |
session | $.session.cookie |
drop | secret or message content |
| POST | /api/auth/logout |
session | $.session.set-cookie |
drop | secret or message content |