Skip to content

func-api-devices-registration-get ​

Description ​

Verifies that a device is registered with FireFly-Cloud by checking for the device's UUID in the firefly-devices DynamoDB table and validating an ECDSA P-256 signature over a caller-supplied nonce. Called by the HW-Reg application at boot.

This endpoint has no Cognito JWT authorizer — it is authenticated solely by the device's cryptographic signature. The public key used for verification is the one stored at registration time via POST /devices/register.

Invocation ​

Invoked by API Gateway on an HTTP GET /devices/{uuid}/registration request (no JWT authorizer).

Sequence Diagram ​

Sequence Diagram

API Endpoints ​

MethodPathAuthDescription
GET/devices/{uuid}/registrationDevice signature (headers)Verify device registration

Request Headers ​

HeaderRequiredDescription
X-Device-UUIDYesMust match the {uuid} path parameter
X-Device-NonceYesBase64-encoded 32-byte random nonce
X-Device-TimestampYesISO 8601 UTC timestamp (e.g. 2025-05-09T12:00:00Z)
X-Device-SignatureYesBase64-encoded DER-format ECDSA P-256 signature over SHA-256(nonce_bytes || timestamp_ascii_bytes)

Response Body ​

json
{
  "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "product_id": "FFC0806-2505",
  "product_hex": "0x08062505",
  "device_class": "controller",
  "registration_date": "2025-04-01T12:00:00Z",
  "registering_application": "Hardware-Registration-and-Configuration",
  "registering_version": "2025.04.01"
}

Response Codes ​

CodeReason
200 OKDevice is registered and signature is valid
400 Bad RequestMissing required headers, invalid Base64, nonce not 32 bytes, or malformed timestamp
401 UnauthorizedDevice UUID not found, signature verification failed, or timestamp outside the acceptance window
403 ForbiddenX-Device-UUID header does not match {uuid} path parameter
500 Internal Server ErrorUnhandled exception

See the API Reference for full schema documentation.

Deployment ​

See the deployment workflow documentation for workflow steps, infrastructure dependencies, and failure scenarios.