Ir al contenido

Registro manual

El registro manual crea un solo dispositivo directamente, como un admin autenticado. Es la forma más sencilla de poner un dispositivo en línea cuando no necesitas un flujo de autoaprovisionamiento — un dispositivo de laboratorio, una integración puntual o el primer dispositivo que conectas mientras aprendes la plataforma.

La operación es DeviceRegistryService.RegisterDevice, expuesta como POST /api/v1/devices.

Esta es una operación de admin/dashboard, autenticada con el JWT Ed25519 de un usuario del dashboard — no con una credencial de dispositivo. Quien la invoca debe ser un tenant_admin (o platform_admin) del tenant, o un member con el permiso devices. El tenant se toma del JWT, nunca del cuerpo de la petición.

CampoObligatorioDescripción
nameNombre legible del dispositivo
hardware_idIdentificador de hardware estable; único dentro del tenant
groupsnoNombres de grupos a los que se une el dispositivo
tagsnoTags clave/valor para filtrado y organización
anchor_modenoModo de anchoring en blockchain (ANCHOR_MODE_MERKLE_BATCH por defecto, ANCHOR_MODE_PER_EVENT, ANCHOR_MODE_HASH_CHAIN)
profile_idnoDevice profile del que heredar los valores por defecto
gateway_idnodevice_id de un gateway padre, si este es un dispositivo hijo
firmwarenoCadena de versión de firmware inicial
metanoMetadatos clave/valor de forma libre
confignoConfiguración de estado deseado entregada al dispositivo
Ventana de terminal
curl -sS -X POST https://api.kronoxdata.com/api/v1/devices \
-H "Authorization: Bearer <DASHBOARD_JWT>" \
-H "Content-Type: application/json" \
-d '{
"name": "Lab Bench Thermometer",
"hardware_id": "HW-LAB-0001",
"groups": ["lab", "floor-3"],
"tags": { "region": "eu", "owner": "qa" },
"anchor_mode": "ANCHOR_MODE_MERKLE_BATCH",
"profile_id": "p_temp_sensor_v2"
}'

RegisterDevice devuelve el registro completo del dispositivo, incluyendo su device_id generado y una credencial de provisioning (una api_key, o un certificado de cliente según la política de credenciales):

{
"device_id": "3a9f1d22-6b4c-4e8a-bf21-90c7e5d4a118",
"tenant_id": "11111111-1111-1111-1111-111111111111",
"name": "Lab Bench Thermometer",
"hardware_id": "HW-LAB-0001",
"status": "registered",
"groups": ["lab", "floor-3"],
"tags": { "region": "eu", "owner": "qa" },
"anchor_mode": "ANCHOR_MODE_MERKLE_BATCH",
"profile_id": "p_temp_sensor_v2",
"api_key": "sk_live_Zr8K2mQx...redacted...",
"created_at": "2026-05-29T10:15:00Z"
}

En caso de éxito la plataforma también publica un evento device.registered para los servicios posteriores.

hardware_id es único dentro de un tenant. Registrar un segundo dispositivo con un hardware_id que ya existe en el tenant se rechaza:

{
"code": "ALREADY_EXISTS",
"message": "device with hardware_id \"HW-LAB-0001\" already exists in this tenant"
}

No se crea ningún dispositivo y no se publica ningún evento. Esto difiere de key claim, que trata un hardware_id repetido como un reclamo idempotente del dispositivo existente en lugar de un error. La distinción es intencionada: un admin que registra a mano casi siempre lo entiende como un dispositivo nuevo, así que un choque se hace notar con fuerza; un dispositivo que reinicia y vuelve a reclamar significa “soy yo otra vez”, así que tiene éxito en silencio.

Usa registro manual cuando…Usa key claim cuando…
Tienes un puñado de dispositivosTienes un lote de fábrica o una flota
Hay un admin/operador en el bucleLos dispositivos deben conectarse sin supervisión
Quieres tener el registro del dispositivo configurado antes de que el hardware se envíeEl hardware se autorregistra en el primer arranque
Estás probando o integrando un dispositivoEstás desplegando a escala

Para lotes, genera keys con importación masiva y deja que los dispositivos se reclamen a sí mismos.