# Starlink Dev — classification des fonctions

Généré à partir du schéma réel de l'antenne (96 commandes dans le schéma de requêtes). Les statuts viennent des mêmes règles que le code de l'appli (vérifiées par les tests).

> « Sans authentification » signifie : accessible sur le réseau local de l'antenne, sans compte. Ce que **votre** firmware accepte réellement doit être confirmé sur le matériel avec l'explorateur de l'appli.

## A. Local, sans authentification (réseau de l'antenne, gRPC 9200/9201, routeur 9000/9001)

### A1. Lecture seule — 30 appels (explorateur de l'appli)

- **Antenne** (6) : `dish_get_context`, `dish_get_obstruction_map`, `dish_get_emc`, `dish_get_config`, `dish_get_data`, `dish_get_rssi_scan_result`
- **Wi-Fi / routeur** (6) : `wifi_get_clients`, `wifi_get_ping_metrics`, `wifi_get_config`, `wifi_get_client_history`, `wifi_get_firewall`, `wifi_get_traceroute_status`
- **Transceiver** (2) : `transceiver_get_status`, `transceiver_get_telemetry`
- **Système et diagnostic** (16) : `get_status`, `get_next_id`, `get_history`, `get_device_info`, `get_ping`, `get_log`, `get_network_interfaces`, `ping_host`, `get_location`, `get_persistent_stats`, `get_connections`, `get_speedtest_status`, `get_radio_stats`, `time`, `get_diagnostics`, `get_gnss_measurement`

### A2. Commandes implémentées dans l'appli, avec confirmation — 7

- `reboot` (1001) : Redémarrer l'antenne
- `dish_stow` (2002) : Ranger / redéployer l'antenne
- `dish_power_save` (2013) : Économie d'énergie programmée
- `dish_inhibit_gps` (2014) : Activer / désactiver le GPS
- `dish_clear_obstruction_map` (2017) : Réinitialiser la carte d'obstruction
- `wifi_set_client_given_name` (3017) : Renommer un appareil Wi-Fi
- `wifi_start_traceroute` (3036) : Traceroute depuis le routeur

### A3. Commandes locales du schéma, non exposées par l'appli — 13

Connues du schéma mais pas encore implémentées. Candidates pour de futures versions, après test sur matériel :

`speed_test`, `start_speedtest`, `report_client_speedtest`, `self_test`, `tcp_connectivity_test`, `udp_connectivity_test`, `dish_set_config`, `dish_activate_rssi_scan`, `wifi_self_test`, `wifi_guest_info`, `wifi_run_self_test`, `wifi_backhaul_stats`, `wifi_flush_hardware_nat`

## B. Avec authentification

### B1. Commandes qui exigent une requête signée — 6, refusées par l'appli

`signed_request`, `authenticate`, `set_trusted_keys`, `sensitive_request`, `start_unlock`, `finish_unlock`

Elles servent à l'authentification constructeur, aux clés de confiance et au déverrouillage. Starlink Dev ne les envoie jamais.

### B2. Compte starlink.com (session du titulaire)

Implémentés dans l'appli (lecture seule) : identité (`/api/auth/v1/current-user`), lignes de service (`/api/webagg/v2/accounts/service-lines`), abonnements (`/api/webagg/v1/public/subscriptions/query`), solde (`/api/webagg/v1/public/billing/payable-balances`), pannes du compte et pannes globales (`/api/webagg/v1/public/outages` et `/global`).

Connus par le module `starlink_client`, accessibles via le chemin libre de l'appli : détail d'une ligne de service, moyens de paiement, paiements, aperçu de facture, tickets support, parrainage.

### B3. API Enterprise REST (comptes entreprise, accès soumis à autorisation Starlink)

Comptes, lignes de service, terminaux, télémétrie : documentée par le projet `@gibme/starlink`. Non implémentée : nécessite un accès entreprise.

## C. Bloquées par sécurité — 40

`factory_reset`, `set_sku`, `update`, `get_heap_dump`, `restart_control`, `fuse`, `initiate_remote_ssh`, `set_test_mode`, `software_update`, `enable_debug_telem`, `iq_capture`, `run_iperf_server`, `get_goroutine_stack_traces`, `dish_set_emc`, `dish_set_max_power_test_mode`, `dish_factory_reset`, `reset_button`, `set_per_vehicle_config`, `dish_aviation_test`, `dish_inhibit_rf`, `ztlm_query`, `dish_start_test_mode_server`, `user_reported_issue`, `wifi_set_config`, `wifi_setup`, `wifi_set_mesh_device_trust`, `wifi_set_mesh_config`, `wifi_set_aviation_conformed`, `wifi_calibration_mode`, `wifi_rf_test`, `wifi_toggle_poe_negotiation`, `wifi_factory_test_command`, `wifi_start_local_telem_proxy`, `wifi_toggle_umbilical_mode`, `wifi_client_sandbox`, `wifi_run_debug_netsys`, `wifi_reset_eth_phy`, `wifi_write_calibration`, `transceiver_if_loopback_test`, `toggle_mode`

Réinitialisation d'usine, SSH distant, calibration, mises à jour forcées, émetteur RF, modes de test constructeur, vidages mémoire… Elles peuvent rendre l'antenne inutilisable ou contourner ses protections : jamais envoyées, même depuis l'explorateur.

## D. Hors périmètre volontaire

- Proxy ou tunnel installé **sur l'antenne** : le terminal n'offre aucune interface prévue pour cela. La confidentialité se traite sur le routeur (pare-feu, DNS), le VPS ou le téléphone (Shield DNS dans l'appli).
- Accès direct au satellite depuis un téléphone : aucune interface publique connue.
