Verifica e trasparenza della governance

Questa pagina spiega i controlli utilizzati da PayCal per verificare il comportamento e applicare i controlli operativi nella produzione.

Cosa intendiamo per governance

Per noi, governance significa policy codificate in percorsi di codice, limiti, test e controlli di distribuzione. Non è una promessa solo documentale.

I riferimenti seguenti corrispondono ai punti di implementazione in questo repository in modo che le affermazioni possano essere verificate in modo indipendente.

Metadati di verifica

Metadati del percorso

  • Itinerario: /transparency/verification-governance/
  • Ultima verifica:
  • Prossima revisione prevista:
  • Ambito di verifica: revisione manuale delle implementazioni dei gate descritte rispetto agli hook attuali, ai controlli della pipeline CI e ai percorsi di controllo di runtime.
  • Previous version: Verification and Governance before the June 2026 tooling update

Limitazioni note

  • Le descrizioni dei cancelli vengono gestite manualmente; è previsto un riferimento incrociato automatizzato tra questa pagina e la configurazione hook/pipeline per la chiusura trimestrale.
  • I valori limite di runtime riflettono i valori predefiniti; le sostituzioni specifiche dell'ambiente possono differire nelle istanze non di sviluppo.

Questi metadati vengono aggiornati trimestralmente come parte della chiusura dell'audit di governance.

Stato attuale del controllo di sicurezza

A partire dal 24-03-2026, PayCal rimane nello stato PASS dopo l'espansione da BRS-01 a BRS-05 e la sincronizzazione igienica del rilascio successivo.

I dettagli sullo stato pubblico e i riferimenti alle prove sono pubblicati su /transparency/security-audit/.

1) Porte della politica locale (Git Hooks)

Gli hook locali bloccano le unioni non sicure prima che il codice raggiunga i rami condivisi.

  • 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.

Questi cancelli riducono la possibilità di derive politiche e di regressioni silenziose sulla qualità.

2) Pipeline di verifica CI

Il flusso di lavoro CI esegue livelli di test progressivamente più profondi, dalla convalida rapida alla verifica in stile stress.

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) Limiti della velocità di esecuzione e governance degli input

Gli endpoint operativi sono vincolati da finestre di richiesta esplicite e regole di convalida del payload.

  • 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.

Questi controlli hanno lo scopo di mantenere il comportamento prevedibile sia in modelli di traffico normali che abusivi.

4) TTL e governance dei limiti di sicurezza

I limiti di flusso sensibili alla sicurezza sono definiti a livello centrale e delimitati da vincoli minimo/massimo.

  • html/src/system-limits-master.php includes enable_rate_limiting and account-recovery controls.
  • I limiti di ripristino dell'account includono il codice TTL, i tempi di recupero del nuovo invio, il numero massimo di tentativi di verifica, le finestre di riproduzione e i TTL del blocco IP con 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.

Questa struttura consente aggiornamenti controllati delle policy senza oltrepassare i limiti digitati.

5) CSP e controlli sulla consegna degli asset

Le pagine rivolte al pubblico sono regolate da criteri espliciti di sicurezza dei contenuti e da rendering di script/stili non sensibili.

  • 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.

Questi controlli limitano le superfici eseguibili e fanno parte del nostro modello di governance di base.

Come verificare queste affermazioni

Gli sviluppatori possono riprodurre i segnali di verifica direttamente in questo repository:

# 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

Ultimo aggiornamento: June 22, 2026.