Licencias
Svitrio puede actuar como autoridad de licencias para tu producto: cada proyecto contiene una clave de firma Ed25519 y estampa un token firmado y verificable sin conexión en cada licencia. Tu producto verifica con la clave pública del proyecto — sin necesidad de llamar a casa — y opcionalmente puede sondear un endpoint de estado para observar la revocación. Opt-in por proyecto.
Productos y licencias
Define products, luego emite licenses con un public_ref como LIC-7GK2MQ, un plan, seats, datos del cliente y una expiración opcional. El status de una licencia (active / suspended / revoked) solo se mueve a través de una máquina de estados (POST /licenses/{id}/transition); expired se deriva en el momento de la verificación, nunca se almacena.
Formatos
Las mismas claims firmadas se pueden entregar de tres maneras, autodetectadas al verificar:
svl1— un tokensvl1.<payload>.<sig>compacto (la etiqueta de versión está dentro de la región firmada, lo que bloquea el downgrade).jwt— un JWT EdDSA (RFC 8037); solo se acepta EdDSA, lo que cierra los ataques de confusión de algoritmo.x509— una hoja PEM firmada por la CA autofirmada del proyecto, con las claims en una extensión de certificado.
Superficies de verificación
Público, sin autenticar: GET /api/p/{ref}/licenses/status?ref=LIC-… (revocación), /licenses/jwks (verifica el formato JWT) y /licenses/ca.pem (verifica el formato x509).