[MeshCore] Outbound 2FA claim: WS dispatch + HTTP verify
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 30/100
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
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=MESHCOREonly: after creatingNodeOwnerClaim, resolve target identity (mc_pubkey, fallbackmc_pubkey_prefix) fromObservedNode. - Select feeder
ManagedNode(optionalfeeder_managed_node_idfrom UI; else eligible connected MC feeder). - Dispatch via
dispatch_node_command(apply_mc_channel_configpattern).
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/)
- Body
{ "claim_key": "…" }; normalize likenormalize_claim_key. - Emit
node_claim_authorized+notify_node_claim_accepted. - Keep inbound
try_accept_node_claimon ingest as fallback until outbound is stable.
4. Docs + tests
- Update node-claims-meshcore.md.
-
openapi.yamlfor verify route.
Depends on
- 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
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di pskillen/meshflow-api
-
enhancement meshtastic-2.8
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
pskillen/meshflow-api#459 ·
-
enhancement meshtastic-2.8
Difficoltà 3/5 1-2 giorni Idoneità per principianti 35/100
pskillen/meshflow-api#465 ·
-
enhancement meshtastic-2.8
Difficoltà 4/5 3-5 giorni Idoneità per principianti 22/100
pskillen/meshflow-api#464 ·
-
enhancement meshtastic-2.8
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
pskillen/meshflow-api#463 ·
-
[2.8] Handle missing rxTimeApertaenhancement meshtastic-2.8
Difficoltà 3/5 1-2 giorni Idoneità per principianti 45/100
pskillen/meshflow-api#462 ·
Tutte le issue di pskillen/meshflow-api
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
microsoft/markitdown#2820 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
yt-project/yt#5624 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
NousResearch/hermes-agent#148376 ·
I maintainer di solito rispondono entro 1 giorno