Credenciales
Cada ruta acepta exactamente un tipo de token bearer.
| Plano | Credencial | Qué puede hacer |
|---|---|---|
| Propietario (control) | Sesión hyc0_… de POST /v0/signup o /v0/login. Verificador de contraseña Argon2id; 24 horas; no renovable. |
Todo: proyectos, claves, snapshots, restore, creación de buckets, despliegue y borrado de funciones, secretos — más todo lo que puede una clave de proyecto. |
| Proyecto (datos) | Clave de proyecto viva hyp1_<32 hex>_<64 hex> de POST /v0/projects/{id}/keys. |
/v2/* a través del proxy, objetos de storage y lista de buckets, publicar y escuchar realtime, invocar funciones. |
Claves de proyecto
Sección titulada «Claves de proyecto»- La clave completa se devuelve una vez, al crearla. El servidor guarda un verificador, nunca la clave, y no puede volver a mostrarla.
- Una clave se comprueba en cada petición contra su verificador y su estado de revocación. No hay caché ni periodo de gracia: una clave revocada falla en la siguiente petición en cualquier conexión, y sus streams realtime abiertos se cierran en ese instante.
- Una clave pertenece a un proyecto y nunca puede nombrar otro (
404). Presentada en una ruta solo de propietario es401: una credencial válida en el plano equivocado. - Los recibos registran el id de la clave como actor, nunca el secreto.
- Revocar es idempotente y las claves nunca se borran, así que la lista es el historial completo.
No hay primitiva de rotación: emite una clave nueva, mueve tu aplicación a ella y revoca la antigua. El Cloud no gestiona ninguna ventana de solapamiento.
Crear una cuenta
Sección titulada «Crear una cuenta»POST /v0/signup recibe un correo y una contraseña (8–1024 bytes). En un
despliegue con invitación — el alojado lo es — exige además un
invite_code que te entregan los operadores. Un código ausente o desconocido
responde 403 authorization_denied, con el mismo cuerpo en ambos casos y antes
de que el servidor mire el correo, así que la respuesta nunca revela si una
dirección ya tiene cuenta. Los códigos se comparan en tiempo constante y nunca
se guardan en claro, se registran ni se reciben. No hay flujo de invitación
autoservicio: solicita acceso y un operador
te da un código.
Sesiones
Sección titulada «Sesiones»Un token de sesión es un bearer del plano de propietario. Vive 24 horas (expires_at viene en la respuesta), se guarda hasheado en el servidor y se rechaza en todas las rutas salvo signup y login una vez expirado. El Studio lo guarda solo en el sessionStorage de la pestaña. No hay OAuth, enlace mágico, renovación ni revocación en el servidor en esta versión — ver qué no es.
El Cloud nunca inyecta una clave
Sección titulada «El Cloud nunca inyecta una clave»Ni en funciones ni en tickets. Una aplicación guarda su propia clave y es responsable de ella. Una función que necesite Native debe recibir una clave de quien la invoca y llamar al proxy por sí misma.