Massive update
This commit is contained in:
@@ -66,6 +66,19 @@ async def send_command(node_id: str, cmd: CommandPayload):
|
||||
return {"ok": True}
|
||||
|
||||
|
||||
@router.post("/{node_id}/reissue-key")
|
||||
async def reissue_node_key(node_id: str, _: dict = Depends(require_admin_token)):
|
||||
"""Generate a new API key for the node and push it via MQTT (retained).
|
||||
Use this to rotate a key or recover a node whose key was lost."""
|
||||
node = await fstore.doc_get("nodes", node_id)
|
||||
if not node:
|
||||
raise HTTPException(404, f"Node '{node_id}' not found.")
|
||||
api_key = secrets.token_hex(32)
|
||||
await fstore.doc_set("node_keys", node_id, {"node_id": node_id, "api_key": api_key}, merge=False)
|
||||
mqtt_handler.publish_node_key(node_id, api_key)
|
||||
return {"ok": True}
|
||||
|
||||
|
||||
@router.post("/{node_id}/config/{system_id}")
|
||||
async def assign_system(node_id: str, system_id: str):
|
||||
"""
|
||||
|
||||
Reference in New Issue
Block a user