La seguridad, dicha claramente.

Sin muro de insignias: los controles concretos y verificables que hay hoy en el producto. Haga preguntas difíciles: hello@pauli.xyz.

Transporte y autenticación

  • Ingreso solo TLS. La API escucha en loopback; el único punto de entrada público termina TLS, así que las claves bearer nunca viajan en claro.
  • Claves con hash, mostradas una vez. Hashes SHA-256 en reposo; el texto plano se devuelve exactamente una vez, al crear o rotar. La rotación y la revocación son instantáneas.
  • Aislamiento por espacio de trabajo en cada consulta. Acotado en la capa de persistencia; las lecturas entre inquilinos devuelven 404, no 403.
  • Límite de tasa por clave. Cubos de tokens en Redis; fail-open o fail-closed es una elección del operador.

Webhooks

  • Cargas firmadas. HMAC-SHA256 con marca de tiempo (X-Pauli-Signature) sobre los bytes exactos de la carga, de modo que una entrega capturada solo se reproduce dentro de su tolerancia de verificación; las rotaciones firman con el secreto viejo y el nuevo durante una ventana de solape. X-Pauli-Event-Id deduplica.
  • Guardas SSRF, dos veces. URLs de webhook solo https, rechazadas cuando resuelven a direcciones no públicas (loopback, RFC 1918, link-local, metadatos de la nube) al registrarlas, y verificadas de nuevo en la entrega contra DNS rebinding. Siempre activo; sin interruptor.

Dinero e integridad de los datos

  • Decimal de extremo a extremo. El dinero nunca pasa por punto flotante; los importes de la API son cadenas decimales exactas.
  • Facturación exactamente-una-vez, garantizada por la base de datos. Índices únicos parciales protegen cobros, débitos y reembolsos; los reintentos y las reentregas no pueden cobrar ni acreditar dos veces.
  • Los pagos acreditan solo con fondos confirmados. Los webhooks de Stripe se verifican por firma con tolerancia de repetición; un compare-and-swap de estado hace idempotente la acreditación.
  • Registro de auditoría de solo anexado. Ciclo de vida de claves, eventos de jobs, facturación, decisiones de cumplimiento y autenticaciones fallidas, escritos en la misma transacción que la acción.

Operaciones

  • Una sola fuente de verdad. Postgres guarda todo el estado; perder la cola no pierde jobs, resultados ni dinero.
  • Procesamiento a prueba de caídas. Los workers reclaman jobs con arriendos y confirman en cada frontera de fase; los barridos rederivan cualquier trabajo que un proceso muerto dejara caer.
  • Copias de seguridad verificadas. Probadas con restauración según calendario (una copia sin restaurar no es copia); copias cifradas salen del host.
  • Los errores nunca filtran internos. Los cuerpos 5xx llevan solo un código estable y un id de solicitud; el detalle queda en los logs del servidor.
  • Página de estado pública. Alojada fuera de nuestra infraestructura en status.pauli.xyz, para seguir accesible cuando nosotros no lo estemos.

Postura de cumplimiento

  • Puerta de control de exportaciones en el enrutador. El hardware controlado solo se enruta a espacios de trabajo verificados con jurisdicción declarada; cada denegación se audita.
  • Filtrado de partes denegadas. Cada decisión de filtrado se audita; el enrutamiento la lee en cada solicitud.
Sobre SOC 2: nos certificaremos cuando los clientes lo requieran, y completamos cuestionarios de seguridad a petición.

Reportar una vulnerabilidad

Escriba a hello@pauli.xyz con los pasos de reproducción. Acusamos recibo en dos días hábiles y no emprendemos acciones legales contra la investigación de buena fe.