- 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
66 lines
1.8 KiB
YAML
66 lines
1.8 KiB
YAML
post:
|
|
summary: Enroll client and issue long-term token
|
|
security: []
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../schemas/enroll-request.yaml'
|
|
examples:
|
|
enroll:
|
|
value:
|
|
project_id: demo
|
|
client_id: device-42
|
|
software_id: kiosk
|
|
enroll_token: enroll_6f3d2c...
|
|
responses:
|
|
'200':
|
|
description: Enrollment successful
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../schemas/enroll-response.yaml'
|
|
examples:
|
|
issued:
|
|
value:
|
|
token: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
|
|
scope: read_manifest report_status
|
|
expires_at: 2026-12-30T10:00:00Z
|
|
'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: Invalid or expired enrollment token
|
|
'409':
|
|
description: Conflict
|
|
x-error-codes: [already_enrolled]
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '../schemas/error.yaml'
|
|
examples:
|
|
already_enrolled:
|
|
value:
|
|
code: already_enrolled
|
|
message: Client already enrolled
|