[MeshCore] Outbound 2FA claim: WS dispatch + HTTP verify
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 30/100
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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
- Lenguaje dominante
- Python
- Estrellas
- 1
- Forks
- 0
- Merge medio
- 23 h 9 min
- PR fusionados (30 d)
- 15
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de pskillen/meshflow-api
-
enhancement meshtastic-2.8
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
pskillen/meshflow-api#459 ·
Los mantenedores suelen responder en 1 día
-
bug tech-debt
Dificultad 5/5 Más de una semana Aptitud para principiantes 30/100
pskillen/meshflow-api#480 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 3/5 Medio día Aptitud para principiantes 55/100
pskillen/meshflow-api#479 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 3/5 1-2 días Aptitud para principiantes 68/100
pskillen/meshflow-api#478 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 3/5 1-2 días Aptitud para principiantes 73/100
pskillen/meshflow-api#472 ·
Los mantenedores suelen responder en 1 día
Todos los issues de pskillen/meshflow-api
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
huggingface/accelerate#4511 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
pylint-dev/pylint#11791 ·
Los mantenedores suelen responder en 1 día
-
Rasterio granule reads never retry, so one 503 (Service Unavailable) fails the whole requestPosiblemente ocupada @chuckwondo la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
developmentseed/titiler-cmr#305 ·
Los mantenedores suelen responder en 1 día
-
community enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día