Documentation Index
Fetch the complete documentation index at: https://snakysec.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Runbook opérateur
Procédures pour démarrer, exploiter, et dépanner la plateforme MSSP SnakySec.Sommaire
- Environnements
- Démarrage pré-prod
- Démarrage production
- Vault (init, unseal, rotation)
- Prisma — sync schéma
- Matrice de rebuild
- Audit local (hors CI)
- Dépannage
Environnements
| Env | Mode Vault | TLS | Cible |
|---|---|---|---|
| Pré-prod (dev local) | dev mode (root token) | mkcert | Docker Desktop Windows (aujourd’hui) · MacBook Pro (futur) |
| Production | Shamir seal (5 shares, threshold 3) | Let’s Encrypt | VPS OVH (cible) |
Démarrage pré-prod
https://<APP_DOMAIN>. Credentials AppRole injectés automatiquement depuis Vault dev.
Logs par service :
Démarrage production
Vault (init, unseal, rotation)
Unseal après redémarrage
Rotation AppRole
Aprèsvault operator init ou ré-init :
mssp-approle (les entrypoints lisent les nouveaux credentials au prochain démarrage container).
Paths Vault
mssp/data/platform—auth_secret,encryption_key,entra_cert_pem,entra_cert_private_key,gitlab_token,postgres_password,redis_password,sentry_dsn,sentry_auth_tokenmssp/data/clients/<slug>— credentials SSO par client (entra_client_id,entra_tenant_id,entra_cert_pem,entra_cert_private_key)
Prisma — sync schéma
Prisma 7 nécessiteprisma.config.ts à la racine de platform/.
Après modification de schema.prisma, pousser le schéma via un container éphémère sur le réseau Docker :
make app-rebuild pour rebuild l’image avec le nouveau client Prisma.
Matrice de rebuild
| Fichier modifié | Commande |
|---|---|
platform/src/**/*.ts(x) | make app-rebuild |
platform/prisma/schema.prisma | Container éphémère prisma db push + make app-rebuild |
platform/package.json | make app-rebuild |
platform/docker/** | make preprod-build (ou service ciblé) |
.env | make app-restart (recrée le container avec nouveau env) |
Contrôles framework (src/frameworks/**/*.json) | Aucun — chargés au runtime côté CI |
Audit local (hors CI)
Pour tester un contrôle sans déclencher un pipeline GitLab :artifacts/audit/.
Dépannage
”No client configured for this domain”
Fallback plateforme actif : vérifier que les secrets Entra sont présents surmssp/data/platform. Si oui, l’admin MSSP doit voir le bouton SSO. Si non, vérifier que resolveClientFromCookie() retourne les env vars plateforme.
JWT session invalidée après redémarrage
AUTH_SECRET rotated en Vault → toutes les sessions NextAuth sont invalidées. L’utilisateur doit clear ses cookies et re-login.
instrumentation.ts ne voit pas les secrets Vault
instrumentation.ts s’exécute une fois au démarrage serveur, pas à chaque requête. Pour propager une modification, make app-rebuild (pas juste restart).
Cert auth Graph échoue
Les secretsENTRA_CERT_PEM + ENTRA_CERT_PRIVATE_KEY vivent uniquement dans Vault. Vérifier :
-----BEGIN CERTIFICATE-----.
Variables NEXT_PUBLIC_* non mises à jour
Bakées au build time dans le JS bundle. make app-rebuild obligatoire (pas juste restart).
Webhook GitLab auto-disabled
GitLab désactive un webhook après N échecs consécutifs. Re-enabler manuellement dans l’UI GitLab + vérifier que/api/webhooks/gitlab répond en <10s (import async via after() configuré).