Skip to content

func-api-devices-registration-get ​

Overview ​

Deploys the Lambda function that handles GET /devices/{uuid}/registration. Called by the HW-Reg application at boot to verify that a device is registered with FireFly-Cloud. Authenticates the request by verifying an ECDSA P-256 signature over a caller-supplied nonce using the public key stored at registration time. This route has no Cognito JWT authorizer — it is authenticated solely by the device's cryptographic signature.

CloudFormation Stack ​

firefly-func-api-devices-registration-get

CloudWatch Logs ​

SettingValue
Log group/aws/lambda/firefly-func-api-devices-registration-get
Retention30 days

Dependencies ​

Deploy Dependencies ​

WorkflowReason
api-gatewayApiId resolved from stack outputs
dynamodb-devicesTable must exist before the function is deployed and granted read access
shared-layerLambda layer must exist before function deployment

Delete Dependencies ​

None — this workflow has no prerequisites.

Required By ​

Required By Deploy ​

WorkflowReason
run-integration-testsEndpoint must be live before integration tests run

Required By Delete ​

WorkflowReason
delete-api-gatewayRoute registration must be removed before the API Gateway stack is deleted
delete-dynamodb-devicesIAM permissions referencing the table must be removed first
delete-shared-layerLayer reference must be removed before the layer stack is deleted

IAM Permissions ​

The Lambda execution role (firefly-func-api-devices-registration-get-role) is granted:

  • dynamodb:GetItem on firefly-devices
  • appconfig:StartConfigurationSession, appconfig:GetLatestConfiguration on *

Deploy Workflow ​

Description ​

Resolves the HTTP API Gateway ID, shared layer ARN, and AppConfig extension layer ARN from CloudFormation stack outputs, then performs a SAM deploy. This function does not use a JWT authorizer — no AuthorizerId parameter is needed.

Steps ​

  1. Configure AWS credentials.
  2. Look up ApiId from the firefly-api-gateway stack output.
  3. Look up SharedLayerArn from the firefly-shared-layer stack output.
  4. Look up AppConfigExtensionLayerArn from the firefly-shared-layer stack output.
  5. SAM deploy firefly-func-api-devices-registration-get with parameters:
    • ApiId
    • SharedLayerArn
    • AppConfigExtensionLayerArn

Delete Workflow ​

Description ​

Calls sam delete to remove the Lambda function, its IAM role, and the API Gateway route integration. Also deletes the CloudWatch log group.

Steps ​

  1. Configure AWS credentials.
  2. SAM delete firefly-func-api-devices-registration-get.
  3. Delete CloudWatch log group /aws/lambda/firefly-func-api-devices-registration-get.

Failure Scenarios ​

ScenarioBehavior
firefly-api-gateway stack not founddescribe-stacks returns an error; workflow fails before SAM deploy. Deploy api-gateway first.
firefly-dynamodb-devices stack not deployedFunction deploys but returns errors at runtime. Deploy dynamodb-devices first.
firefly-shared-layer stack not foundLayer ARN lookup fails; SAM deploy is not attempted. Deploy shared-layer first.
Device UUID not foundLambda returns 401 Unauthorized.
Invalid or mismatched signatureLambda returns 401 Unauthorized.