[MeshCore] Outbound 2FA claim: WS dispatch + HTTP verify

Aperta
#361 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
30/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Tranquilla
Stack tecnologico
python
Ambito
api, backend

Direzione di ricerca

Start with dispatch_node_command in Meshflow/common/feeder_ws.py, using the existing apply_mc_channel_config dispatch as the pattern, and read normalize_claim_key in Meshflow/nodes/claim_authorization.py alongside notify_node_claim_accepted in Meshflow/nodes/ws_notify.py. Done means the initiate route sends a send_mc_claim_dm command, the new verify route accepts a claim key and sets the claim as accepted, and openapi.yaml and node-claims-meshcore.md are updated. The bot side (meshflow-bot#120) is a stated blocker, so this is not startable end to end yet.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

enhancement

Parent (UI user flow)

Part of meshflow-ui#291 — Claim MeshCore node / feeder onboarding epic.

Repo Issue
UI meshflow-ui#303
Bot meshflow-bot#120

Meshtastic inbound DM claim stays unchanged (node-claims-meshtastic.md).

Replaces the fragile inbound MeshCore flow in node-claims-meshcore.md. Basic MC claim shipped in meshflow-ui#292 (closed).

Problem

MeshCore DMs require the recipient in the radio contact list (usually populated via RF adverts). Users claiming from the web UI cannot reliably DM a feeder with the claim key. The API already knows the target node's mc_pubkey / prefix from telemetry; a feeder should DM the user with the code; the user types the code back in the UI.

Architecture

sequenceDiagram
  participant UI as meshflow-ui
  participant API as meshflow-api
  participant WS as ws/nodes (feeder)
  participant Bot as meshflow-bot (MC)
  participant Radio as MeshCore device

  UI->>API: POST observed-nodes/{id}/claim/ (existing)
  API->>API: Create NodeOwnerClaim + claim_key
  API->>WS: node_command send_mc_claim_dm
  WS->>Bot: command JSON
  Bot->>Radio: add contact + send DM(claim_key)
  Radio->>User: DM with claim key
  UI->>API: POST observed-nodes/{id}/claim/verify/ { claim_key }
  API->>API: Match pending claim, set accepted_at + claimed_by
  API->>UI: node_claim_accepted (HTTP + ws/claims/)

Scope (meshflow-api)

1. Initiate claim (POST …/claim/)
  • For protocol=MESHCORE only: after creating NodeOwnerClaim, resolve target identity (mc_pubkey, fallback mc_pubkey_prefix) from ObservedNode.
  • Select feeder ManagedNode (optional feeder_managed_node_id from UI; else eligible connected MC feeder).
  • Dispatch via dispatch_node_command (apply_mc_channel_config pattern).
2. WS command send_mc_claim_dm
{
  "type": "send_mc_claim_dm",
  "target_mc_pubkey": "<64-hex or null>",
  "target_mc_pubkey_prefix": "<12-hex or null>",
  "message": "<claim_key>"
}
3. Verify claim (POST …/claim/verify/)
4. Docs + tests

Depends on

  • Bot #120 — MC send + WS (blocker today).
  • UI #303.
Lingua principale
Python
Stelle
1
Fork
0
Merge medio
1g 20h
PR unite (30g)
5

Preparare l'ambiente

  • Include un Dockerfile o un file Docker Compose
  • Ha un modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di pskillen/meshflow-api

Tutte le issue di pskillen/meshflow-api

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.