Skip to content

func-api-devices-backup-delete

Description

Deletes the stored encrypted configuration backup for a device. Removes the S3 object keyed by the device UUID (idempotent — succeeds even if no backup exists) and clears last_backup_date from the device's DynamoDB record.

This endpoint has no Cognito JWT authorizer — it is authenticated solely by the device's cryptographic signature.

Invocation

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

Sequence Diagram

Sequence Diagram

API Endpoints

MethodPathAuthDescription
DELETE/devices/{uuid}/backupDevice signature (headers)Delete stored configuration backup

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 ECDSA P-256 signature over SHA-256(nonce || timestamp)

Response Body

json
{
  "message": "Backup deleted"
}

Response Codes

CodeReason
200 OKBackup deleted (or did not exist)
400 Bad RequestMissing/invalid headers or invalid Base64
401 UnauthorizedDevice UUID not found, signature invalid, 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.