- added /update/enroll endpoint and enrollment logic - migrated update client to v1 api endpoints and bearer auth - implemented remote status reporting in backend and scripts - updated requirements and project status
85 lines
2.3 KiB
YAML
85 lines
2.3 KiB
YAML
post:
|
|
summary: Report update status
|
|
x-auth-scopes: [report_status]
|
|
parameters:
|
|
- name: project_id
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../schemas/status-report.yaml'
|
|
examples:
|
|
success:
|
|
value:
|
|
project_id: demo
|
|
version: 1.2.3
|
|
status: success
|
|
timestamp: 2025-12-28T10:15:30Z
|
|
client_id: device-42
|
|
duration_ms: 2450
|
|
failure:
|
|
value:
|
|
project_id: demo
|
|
version: 1.2.3
|
|
status: failed
|
|
timestamp: 2025-12-28T10:15:30Z
|
|
client_id: device-42
|
|
reason: checksum_mismatch
|
|
error_code: checksum_mismatch
|
|
responses:
|
|
'202':
|
|
description: Accepted
|
|
'400':
|
|
description: Bad Request
|
|
x-error-codes: [invalid_payload]
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../schemas/error.yaml'
|
|
examples:
|
|
invalid_payload:
|
|
value:
|
|
code: invalid_payload
|
|
message: Missing required fields
|
|
'401':
|
|
description: Unauthorized
|
|
x-error-codes: [unauthorized]
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../schemas/error.yaml'
|
|
examples:
|
|
unauthorized:
|
|
value:
|
|
code: unauthorized
|
|
message: Missing or invalid token
|
|
'422':
|
|
description: Unprocessable Entity (invalid version or status)
|
|
x-error-codes: [version_invalid, status_invalid]
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../schemas/error.yaml'
|
|
examples:
|
|
version_invalid:
|
|
value:
|
|
code: version_invalid
|
|
message: Version does not match SemVer
|
|
'429':
|
|
description: Too Many Requests
|
|
x-error-codes: [rate_limited]
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../schemas/error.yaml'
|
|
examples:
|
|
rate_limited:
|
|
value:
|
|
code: rate_limited
|
|
message: Too many requests
|