Vista generada del nodo track/identity de styx.model.yml: estado, dependencias, gate, cola y páginas de documentación que lo citan.
styx.model.ymlVista generada desde
styx.model.yml. No se edita a mano:bun run docs:genla regenera ybun run docs:checkfalla si difiere. El estado aquí es el del model: si discrepa con otra página, manda el model.
track/identity — identity-svc OIDCestado: in_progress · kind: track · zona: services
Depende de: outcome/foundation/a2
| Referencia | Título | Estado |
|---|---|---|
r17 | Microservicios split-duro | locked |
r18 | Bus NATS JetStream | locked |
r20 | F0.A architecture correction pass: 6 bloqueantes + 3-división + matiz r19 port Zig | locked |
r27 | Nodes + NATS + plugins + acquisition | locked |
r28 | Parallelization correction pass | locked |
Gate (manifest docs/track/identity/evidence/gate.manifest.yml):
| Item | Verdict | Clase | Páginas que lo citan |
|---|---|---|---|
I1 | open | contracts-envelope | — |
I2 | open | svc-5layer-real | — |
I3 | open | oidc-flow-real | — |
I4 | open | sessions-valkey-ratelimit | — |
I5 | open | playback-principal | — |
I6 | open | nats-min-featureset-pinned | — |
I7 | partial | invitations-simple | Invitaciones (implementado) |
I8 | partial | cli-device-grant-pat | Conectar la TV y el CLI (especificado)Entrar con el CLI ( implementado) |
I9 | open | api-keys-scoped | API keys (especificado) |
I10 | open | quick-connect | Conectar la TV y el CLI (especificado) |
I11 | open | households-profiles | Hogares y perfiles (especificado) |
Cola (docs/track/identity/tickets/):
| Ticket | Título | Estado | Prioridad |
|---|---|---|---|
track/identity#01 | identity-svc OIDC real: contratos, servicio 5-layer, sesiones Valkey, principal en playback, spike NATS | open | P0 |
track/identity#02 | Cookies __Host-, sesión de navegador sin tokens portadores (BFF) y CSRF de doble barrera | open | P0 |
track/identity#03 | Revocación completa (por actor y por admin), tope de sesiones y re-autenticación reciente | open | P1 |
track/identity#05 | Errores sin fuga: problem+json de Elysia 2 en prod, sin eco de la entrada | done | P1 |
track/identity#06 | Mínimo privilegio en datos: rol Postgres propio y ACL Valkey para identity-svc | open | P1 |
track/identity#07 | qry.identity.session sólo para servicios autorizados (spire + NATS NKeys/ACL) | open | P1 |
track/identity#08 | Clave de firma desde fichero y rotación con kid (JWKS actual + siguiente) | open | P2 |
track/identity#09 | Audit log de seguridad estructurado y alertas en identity-svc | done | P1 |
Páginas que lo citan: Dispositivos, mando y handoff (especificado), Servidores conectados y Jellyfin (especificado), Modo público y Styx como plataforma (especificado), Sesiones, BFF y autorización (implementado), API para agentes y MCP (especificado), Subir ficheros (especificado), Comandos del CLI (especificado), API keys (especificado), Conectar la TV y el CLI (especificado), Hogares y perfiles (especificado), Iniciar sesión (especificado), Invitaciones (implementado), Entrar con el CLI (implementado), Instalar (especificado), Visión (especificado), Primer arranque (especificado)
track/identity/invitations — Invitaciones simples estilo Wizarr ligadas al login sellado (un admin + testers, sin perfiles ni hogares)estado: in_progress
Depende de: track/identity/sec
| Referencia | Título | Estado |
|---|---|---|
dec-0125 | Cuentas, hogares y perfiles opcionales, invitaciones estilo Wizarr, passwordless OIDC (Pocket ID u otro) con password local sólo por flag, API keys con scopes, device grant RFC 8628 para CLI y quick connect, paridad headless; estado por perfil transferido a playback-svc y catalog-svc | locked |
dec-0118 | Seguridad por diseño parte 2 — control plane TS, identidad y web (BFF sin tokens portadores, cookies __Host-, CSRF doble barrera, policy deny-by-default, IDOR, CSP+TT, mínimo privilegio, audit) | locked |
Cola (docs/track/identity/invitations/tickets/):
| Ticket | Título | Estado | Prioridad |
|---|---|---|---|
track/identity/invitations#01 | Invitaciones simples (un admin + testers): crear, canjear en el login OIDC, listar y revocar, con role_source y CLI | done | P1 |
Páginas que lo citan: Invitaciones (implementado)
track/identity/cli-auth — Auth del CLI: device grant RFC 8628 en identity-svc (styx login) y PAT mínimoestado: in_progress
Depende de: track/identity/sec
| Referencia | Título | Estado |
|---|---|---|
dec-0125 | Cuentas, hogares y perfiles opcionales, invitaciones estilo Wizarr, passwordless OIDC (Pocket ID u otro) con password local sólo por flag, API keys con scopes, device grant RFC 8628 para CLI y quick connect, paridad headless; estado por perfil transferido a playback-svc y catalog-svc | locked |
dec-0118 | Seguridad por diseño parte 2 — control plane TS, identidad y web (BFF sin tokens portadores, cookies __Host-, CSRF doble barrera, policy deny-by-default, IDOR, CSP+TT, mínimo privilegio, audit) | locked |
Cola (docs/track/identity/cli-auth/tickets/):
| Ticket | Título | Estado | Prioridad |
|---|---|---|---|
track/identity/cli-auth#01 | Auth del CLI: device authorization grant (RFC 8628) en identity-svc, styx login y API keys personales mínimas | done | P1 |
Páginas que lo citan: Conectar la TV y el CLI (especificado), Entrar con el CLI (implementado)
track/identity/api-keys — API keys styx_pat_/styx_sat_ con scopes ⊆ permisos, caducidad obligatoria y canje por JWT en el bordeestado: queued
Depende de: track/identity/cli-auth
| Referencia | Título | Estado |
|---|---|---|
dec-0125 | Cuentas, hogares y perfiles opcionales, invitaciones estilo Wizarr, passwordless OIDC (Pocket ID u otro) con password local sólo por flag, API keys con scopes, device grant RFC 8628 para CLI y quick connect, paridad headless; estado por perfil transferido a playback-svc y catalog-svc | locked |
dec-0118 | Seguridad por diseño parte 2 — control plane TS, identidad y web (BFF sin tokens portadores, cookies __Host-, CSRF doble barrera, policy deny-by-default, IDOR, CSP+TT, mínimo privilegio, audit) | locked |
Páginas que lo citan: API keys (especificado)
track/identity/quick-connect — Quick connect de TV (8 dígitos + QR) sobre el device grant, con aprobación y elección de perfilestado: in_progress
Depende de: track/identity/cli-auth
| Referencia | Título | Estado |
|---|---|---|
dec-0125 | Cuentas, hogares y perfiles opcionales, invitaciones estilo Wizarr, passwordless OIDC (Pocket ID u otro) con password local sólo por flag, API keys con scopes, device grant RFC 8628 para CLI y quick connect, paridad headless; estado por perfil transferido a playback-svc y catalog-svc | locked |
dec-0118 | Seguridad por diseño parte 2 — control plane TS, identidad y web (BFF sin tokens portadores, cookies __Host-, CSRF doble barrera, policy deny-by-default, IDOR, CSP+TT, mínimo privilegio, audit) | locked |
Cola (docs/track/identity/quick-connect/tickets/):
| Ticket | Título | Estado | Prioridad |
|---|---|---|---|
track/identity/quick-connect#01 | Quick connect de TV: cliente styx-tv, techo de scopes, tope propio de dispositivos y presupuesto de fallos del user_code | open | P1 |
Páginas que lo citan: Conectar la TV y el CLI (especificado)
track/identity/accounts-households-profiles — Cuentas con varias identidades, hogares opcionales con roles, perfiles con PIN, madurez y concesiones de bibliotecaestado: queued
Depende de: track/identity/invitations
| Referencia | Título | Estado |
|---|---|---|
dec-0125 | Cuentas, hogares y perfiles opcionales, invitaciones estilo Wizarr, passwordless OIDC (Pocket ID u otro) con password local sólo por flag, API keys con scopes, device grant RFC 8628 para CLI y quick connect, paridad headless; estado por perfil transferido a playback-svc y catalog-svc | locked |
dec-0118 | Seguridad por diseño parte 2 — control plane TS, identidad y web (BFF sin tokens portadores, cookies __Host-, CSRF doble barrera, policy deny-by-default, IDOR, CSP+TT, mínimo privilegio, audit) | locked |
Páginas que lo citan: Hogares y perfiles (especificado)
track/identity/local-password — Contraseña local por flag (argon2id, NIST 800-63B-4, TOTP, sin ROPC)estado: queued
Depende de: track/identity/accounts-households-profiles
| Referencia | Título | Estado |
|---|---|---|
dec-0125 | Cuentas, hogares y perfiles opcionales, invitaciones estilo Wizarr, passwordless OIDC (Pocket ID u otro) con password local sólo por flag, API keys con scopes, device grant RFC 8628 para CLI y quick connect, paridad headless; estado por perfil transferido a playback-svc y catalog-svc | locked |
dec-0118 | Seguridad por diseño parte 2 — control plane TS, identidad y web (BFF sin tokens portadores, cookies __Host-, CSRF doble barrera, policy deny-by-default, IDOR, CSP+TT, mínimo privilegio, audit) | locked |
Páginas que lo citan: Hogares y perfiles (especificado)
track/identity/sec — Seguridad del control plane: sesión BFF + CSRF, policy deny-by-default, IDOR, CORS, CSP/TT, mínimo privilegio, NATS por servicio, auditestado: in_progress
| Referencia | Título | Estado |
|---|---|---|
dec-0118 | Seguridad por diseño parte 2 — control plane TS, identidad y web (BFF sin tokens portadores, cookies __Host-, CSRF doble barrera, policy deny-by-default, IDOR, CSP+TT, mínimo privilegio, audit) | locked |
dec-0119 | spire, punto único de seguridad de las comunicaciones (identidad de servicio, policy obligatoria, sobre firmado anti-replay, verificador SCT único en spire-zig) | locked |
dec-0116 | Contratos contract-first en TypeBox 1.x compilado y salto ya a Elysia 2 beta; Arktype fuera | locked |
r10 | Delivery plane separado del control plane | locked |
r17 | Microservicios split-duro | locked |
r20 | F0.A architecture correction pass: 6 bloqueantes + 3-división + matiz r19 port Zig | locked |
Gate (manifest docs/track/identity/sec/evidence/gate.manifest.yml):
| Item | Verdict | Clase | Páginas que lo citan |
|---|---|---|---|
SW10 | partial | route-policy-deny-by-default | — |
SW11 | pass | resource-authz-idor | — |
SW12 | pass | services-without-cors | — |
SW13 | partial | csp-trusted-types-headers | — |
SW14 | open | remote-content-no-sinks | — |
SW15 | partial | least-privilege-data | — |
SW16 | open | nats-operator-acl | — |
SW17 | open | spire-ts-envelope | — |
SW18 | partial | security-audit-alerts | — |
SW19 | partial | guards-with-mutants | — |
SW20 | partial | bff-session | — |
Cola (docs/track/identity/sec/tickets/):
| Ticket | Título | Estado | Prioridad |
|---|---|---|---|
track/identity/sec#10 | Policy layer deny-by-default en rutas Elysia 2 | open | P0 |
track/identity/sec#11 | Autorización por recurso: Authorized<R, A> e IDOR | done | P0 |
track/identity/sec#12 | CORS: servicios sin CORS | done | P0 |
track/identity/sec#13 | CSP con nonces, Trusted Types y cabeceras en la web | open | P1 |
track/identity/sec#14 | Contenido remoto → DOM sin sinks | open | P1 |
track/identity/sec#15 | Rol Postgres y ACL Valkey por servicio (todos) | open | P1 |
track/identity/sec#16 | NATS en modo operador: NKeys y ACL generada por servicio | open | P1 |
track/identity/sec#17 | spire-ts: sobre v2 firmado, anti-replay, validación in/out, límites | open | P1 |
track/identity/sec#18 | Audit de seguridad común y alertas | open | P1 |
track/identity/sec#19 | Guards de dec-0118 §10 con mutantes | open | P1 |
track/identity/sec#20 | BFF: sesión de navegador y authedServerFn | open | P0 |
track/identity/sec#21 | playback-svc: el descriptor público no lleva la ruta de disco y cerrar una sesión exige ser su dueño | done | P1 |
track/identity/sec#22 | media-daemon-client: errores sin contenido del IPC y resultError tipado por código sin casts | done | P2 |
track/identity/sec#23 | AppSec pasadas 1-3, servicios: cupos de reproducción, superficie anónima, alta deny-by-default, coste de auth acotado y dirección de cliente probada | done | P1 |
track/identity/sec#24 | AppSec pasada 1, web: XSS del shell SSR por la cookie de theme y CSP/Trusted Types/cabeceras | done | P1 |
track/identity/sec#25 | AppSec pasadas 1-2, despliegue y cadena de suministro: infra por defecto cerrada, secretos de fichero, infra viva verificada, CI fijado | done | P1 |
track/identity/sec#26 | Integrar AppSec pasada 3 deploy-supply (DS3-01..03) sobre el arreglo TS3-P2-01 ya integrado | open | P1 |
track/identity/sec#27 | Residuales AppSec del control plane, web y despliegue: P3 verificados y regresiones e2e | open | P2 |
track/identity/sec#28 | AppSec pasadas 4–7, control plane y web: login sin estado, lectura deny-by-default, cuota de ingesta, presupuesto del BFF y alta acotada en catalog | done | P2 |
track/identity/sec#29 | AppSec pasadas 8–12, control plane: el audit agrega por la unidad de cliente del rate-limit | done | P2 |
Páginas que lo citan: Evidencia y verificación adversarial (implementado), Comunicaciones entre procesos (implementado), Modelo de amenazas (implementado), Sesiones, BFF y autorización (implementado), Iniciar sesión (especificado)
track/domain-media
Vista generada del nodo track/domain-media de styx.model.yml: estado, dependencias, gate, cola y páginas de documentación que lo citan.
track/plugins-sdk
Vista generada del nodo track/plugins-sdk de styx.model.yml: estado, dependencias, gate, cola y páginas de documentación que lo citan.