Filtered to Repository sdk-php
Read at · spec at 76d46f3
Every repository's revision read
- brand@c2c6485
- integration-home-assistant@1ffa24e
- integration-mcp@71b97a7
- lemonfiber@8371555
- lemonfiber-companion@168bfe9
- lemonfiber-decline@21e9fe7
- lemonfiber-media-stack@a1d36db
- lemonfiber-plugins@7d88bbd
- lemonfiber-request-gate@fa76259
- lemonfiber-web@cfd74f7
- plugin-jellyfin@58fffca
- sdk-php@663b0b4
- sdk-python@645404a
- sdk-ts@eac8964
- spec@76d46f3
- tool-lfdev@93a3c56
0.18.05 goals
sdk-php
- ARCH-R129▲ unmarkedClaim it
A definition in the contract artefact MUST NOT take a name an SDK's generator writes itself, and SDK generation MUST refuse such an artefact, naming the definition and the kind that carries it, rather than emit one name describing two shapes.
- ARCH-R258■ uncitedClaim it
POST /api/device-keys MUST take name, public_key (a P-256 SubjectPublicKeyInfo in base64url), attestation (an object tagged by platform: {"platform": "android", "chain": […]}, the key attestation chain as each certificate's DER in base64url, the key's own certificate first, or {"platform": "ios", "object": …}, the App Attest attestation object's CBOR in base64url, attested with the SHA-256 of exactly the bytes public_key decodes to as its client data hash, hashed once) and password from an operator session, and MUST answer the device-key envelope with the name, the public half's fingerprint, its backing (strongbox, enclave or tee) and the registration time; a missing attestation, one that does not verify, one placing the key in software and one naming an app the core does not trust MUST each be refused with a code of its own listed among the artefact's refusals (C10-R23).
- ARCH-R259■ uncitedClaim it
GET /api/device-keys MUST answer device-keys, listing each device key by name, fingerprint, backing, registration time and last use, and DELETE /api/device-keys/{name} MUST revoke one; both MUST be refused to a member session and to a key (C10-R26).
- ARCH-R260■ uncitedClaim it
POST /api/device-keys/{name}/challenge MUST answer device-challenge with a fresh challenge and when it expires, from an operator session for a registered device key (C10-R24).
- ARCH-R293■ uncitedClaim it
The keys envelope MUST carry proved_by on each key minted with a device key's signature, naming that device key, and MUST leave it out of a key minted any other way (C10-R33).
sdk-python
- ARCH-R129▲ unmarkedClaim it
A definition in the contract artefact MUST NOT take a name an SDK's generator writes itself, and SDK generation MUST refuse such an artefact, naming the definition and the kind that carries it, rather than emit one name describing two shapes.
- ARCH-R258■ uncitedClaim it
POST /api/device-keys MUST take name, public_key (a P-256 SubjectPublicKeyInfo in base64url), attestation (an object tagged by platform: {"platform": "android", "chain": […]}, the key attestation chain as each certificate's DER in base64url, the key's own certificate first, or {"platform": "ios", "object": …}, the App Attest attestation object's CBOR in base64url, attested with the SHA-256 of exactly the bytes public_key decodes to as its client data hash, hashed once) and password from an operator session, and MUST answer the device-key envelope with the name, the public half's fingerprint, its backing (strongbox, enclave or tee) and the registration time; a missing attestation, one that does not verify, one placing the key in software and one naming an app the core does not trust MUST each be refused with a code of its own listed among the artefact's refusals (C10-R23).
- ARCH-R259■ uncitedClaim it
GET /api/device-keys MUST answer device-keys, listing each device key by name, fingerprint, backing, registration time and last use, and DELETE /api/device-keys/{name} MUST revoke one; both MUST be refused to a member session and to a key (C10-R26).
- ARCH-R260■ uncitedClaim it
POST /api/device-keys/{name}/challenge MUST answer device-challenge with a fresh challenge and when it expires, from an operator session for a registered device key (C10-R24).
- ARCH-R293■ uncitedClaim it
The keys envelope MUST carry proved_by on each key minted with a device key's signature, naming that device key, and MUST leave it out of a key minted any other way (C10-R33).
sdk-ts
- ARCH-R129▲ unmarkedClaim it
A definition in the contract artefact MUST NOT take a name an SDK's generator writes itself, and SDK generation MUST refuse such an artefact, naming the definition and the kind that carries it, rather than emit one name describing two shapes.
- ARCH-R258■ uncitedClaim it
POST /api/device-keys MUST take name, public_key (a P-256 SubjectPublicKeyInfo in base64url), attestation (an object tagged by platform: {"platform": "android", "chain": […]}, the key attestation chain as each certificate's DER in base64url, the key's own certificate first, or {"platform": "ios", "object": …}, the App Attest attestation object's CBOR in base64url, attested with the SHA-256 of exactly the bytes public_key decodes to as its client data hash, hashed once) and password from an operator session, and MUST answer the device-key envelope with the name, the public half's fingerprint, its backing (strongbox, enclave or tee) and the registration time; a missing attestation, one that does not verify, one placing the key in software and one naming an app the core does not trust MUST each be refused with a code of its own listed among the artefact's refusals (C10-R23).
- ARCH-R259■ uncitedClaim it
GET /api/device-keys MUST answer device-keys, listing each device key by name, fingerprint, backing, registration time and last use, and DELETE /api/device-keys/{name} MUST revoke one; both MUST be refused to a member session and to a key (C10-R26).
- ARCH-R260■ uncitedClaim it
POST /api/device-keys/{name}/challenge MUST answer device-challenge with a fresh challenge and when it expires, from an operator session for a registered device key (C10-R24).
- ARCH-R293■ uncitedClaim it
The keys envelope MUST carry proved_by on each key minted with a device key's signature, naming that device key, and MUST leave it out of a key minted any other way (C10-R33).
0.19.00 goals
Every goal of this version is met or claimed.