Verificación y transparencia de la gobernanza

Esta página explica los controles que utiliza PayCal para verificar el comportamiento y hacer cumplir las barreras operativas en producción.

Qué queremos decir con gobernanza

Para nosotros, gobernanza significa políticas codificadas en rutas de código, límites, pruebas y comprobaciones de implementación. No es una promesa basada únicamente en documentos.

Las referencias a continuación se corresponden con los puntos de implementación en este repositorio para que las reclamaciones puedan verificarse de forma independiente.

Metadatos de verificación

Metadatos de ruta

  • Ruta: /transparency/verification-governance/
  • Última verificación:
  • Próxima revisión pendiente:
  • Alcance de la verificación: revisión manual de las implementaciones de puertas descritas frente a los enlaces actuales, comprobaciones de canalización de CI y rutas de control de tiempo de ejecución.
  • Previous version: Verification and Governance before the June 2026 tooling update

Limitaciones conocidas

  • Las descripciones de las puertas se mantienen manualmente; La referencia cruzada automatizada entre esta página y la configuración de enlace/canalización está prevista para el cierre trimestral.
  • Los valores límite de tiempo de ejecución reflejan los valores predeterminados; las anulaciones específicas del entorno pueden diferir en instancias que no son de desarrollo.

Estos metadatos se actualizan trimestralmente como parte del cierre de la auditoría de gobernanza.

Estado actual de la auditoría de seguridad

A partir del 24 de marzo de 2026, PayCal permanece en estado PASS después de la expansión BRS-01 a BRS-05 y la sincronización de higiene de lanzamiento de seguimiento.

Los detalles del estado público y las referencias de evidencia se publican en /transparency/security-audit/.

1) Puertas de política local (Git Hooks)

Los enlaces locales bloquean las fusiones inseguras antes de que el código llegue a las ramas compartidas.

  • githooks/pre-commit runs PHPStan Level 9 on staged PHP files under html/.
  • githooks/pre-commit blocks baseline usage in phpstan.neon and blocks phpstan-baseline.neon.
  • githooks/pre-push runs full-repo PHPStan Level 9 and applies the same baseline-blocking policy.

Estas puertas reducen la posibilidad de desviaciones políticas y regresiones silenciosas de la calidad.

2) Canal de verificación de CI

El flujo de trabajo de CI ejecuta capas de prueba progresivamente más profundas, desde una validación rápida hasta una verificación de estilo de estrés.

For the current end-to-end CI/CD operating model, see CI/CD Tooling and Release Governance.

  • .github/workflows/phpunit.yml Stage 2: composer run test:all (unit + integration + contract).
  • .github/workflows/phpunit.yml Stage 3: composer run test:random (order-randomized).
  • .github/workflows/phpunit.yml Stage 3: composer run test:coverage.
  • .github/workflows/phpunit.yml Stage 4: mutation test job.

Representative contract/integration suites include html/tests/Integration/KekContractTest.php, html/tests/Integration/RedisContractTest.php, and contract tests under html/tests/Contract/.

3) Límites de tasa de tiempo de ejecución y gobernanza de entradas

Los puntos finales operativos están delimitados por ventanas de solicitud explícitas y reglas de validación de carga útil.

  • html/src/Domain/RateLimiter.php defines per-minute endpoint and IP limits, including telemetry (90/minute).
  • html/src/Controllers/TelemetryController.php enforces authentication and telemetry rate limits before accepting events.
  • html/src/Controllers/TelemetryController.php bounds event type format with a strict regex to control key cardinality.
  • html/src/Controllers/EmailVerificationController.php applies retry windows with TTL-backed rate-limit keys.

Estos controles tienen como objetivo mantener el comportamiento predecible tanto en patrones de tráfico normales como abusivos.

4) TTL y gobernanza de límites de seguridad

Los límites de flujo sensibles a la seguridad se definen centralmente y están delimitados con restricciones mínimas y máximas.

  • html/src/system-limits-master.php includes enable_rate_limiting and account-recovery controls.
  • Los límites de recuperación de cuenta incluyen código TTL, tiempos de reutilización de reenvío, intentos máximos de verificación, ventanas de reproducción y TTL de bloqueo de IP hash.
  • html/src/Domain/AccountRecoveryAbuseGuard.php records replay telemetry and applies automatic hashed-IP blocking when thresholds are exceeded.
  • html/src/Domain/AccountRecoveryTransaction.php enforces transaction/proof/bootstrap expiries from system limits.

Esta estructura permite actualizaciones de políticas controladas sin eludir los límites escritos.

5) Controles de entrega de activos y CSP

Las páginas públicas se rigen por una Política de seguridad de contenido explícita y una representación de estilo/escritura no consciente.

  • html/header.php builds and emits CSP directives including default-src 'none' and strict script-src/style-src policies.
  • html/header.php includes Trusted Types policy directives.
  • html/src/Domain/Render.php supports nonce-based module script rendering.

Estos controles restringen las superficies ejecutables y son parte de nuestro modelo de gobernanza básico.

Cómo verificar estas afirmaciones

Los desarrolladores pueden reproducir señales de verificación directamente en este repositorio:

# Static analysis gates
bash githooks/pre-commit
bash githooks/pre-push

# Test pipeline equivalents
cd html
composer run test:all
composer run test:random
composer run test:coverage

Última actualización: June 22, 2026.