MSP · CROSS-TENANT

Gérer 20+ clients dans un seul onglet

MSP Cockpit avec tri d'urgency, branding white-label par client, EAT pré-émis pour la couverture off-hours, signature multi-parties pour actions irréversibles, impersonation RBAC pour le support.

Docs complètes
01

Triage cross-tenant du lundi matin

20 clients, tous pensent être top-priority. Vous avez besoin d'un chiffre objectif pour choisir les 3 premiers.

  1. Login en MSP-admin → sidebar 'MSP cockpit'
  2. Tenants triés par urgency descending
  3. Cliquer tenant le plus haut → ouvre en contexte tenant
  4. Filtre urgency > 50 pour votre travail du matin

Filtre urgency > 50 = 2-5 tenants typiquement. Top 3 = travail du matin. Le reste peut attendre cette semaine, pas aujourd'hui.

Idem via API (text) — pour automatisation
urgency = (open_critical × 10)
        + (open_high     × 3)
        + (sla_breach_minutes / 60)
        + (kev_open_cves)
        + (trust_score_delta_24h × -2)   -- a drop is urgent
        + (overdue_eats × 5)

/msp/cockpit sorts every tenant in your portfolio
by this composite. Filter urgency > 50 → typically
2-5 tenants. Top 3 = your morning's work.
02

PDF de remise mensuel pour le client

Le client demande 'qu'a fait votre équipe pour moi ce mois-ci'. Vous ne voulez pas compiler cela manuellement.

  1. Cockpit → switch tenant → sidebar Audit Packs
  2. Cliquer mois → 'Download for handover' → filtre @yourMSP.com
  3. PDF + .sig signés depuis le hub
  4. Email au client — il vérifie offline avec CLI

Évolution Trust Score, mises à jour noyau exécutées, CVEs corrigées, alertes traitées, sessions ouvertes — tout lié par acteur.

Idem via API (bash) — pour automatisation
# Filter the monthly pack to your team's actions
curl 'https://app.monsys.ai/api/v1/audit-packs/<id>/download?format=pdf&actor_filter=@yourMSP.com' \
  -H "Authorization: Bearer $TOKEN" -o handover-acme-2026-04.pdf

# Client verifies independently — no trust required
./monsys-verify-eat-linux-x64 verify-pack \
  --pack handover-acme-2026-04.pdf \
  --sig  handover-acme-2026-04.sig \
  --pubkey  https://transparency.monsys.ai/pubkeys/hub.pub
03

EAT pré-émis pour urgence off-hours

Client a un incident à 2h. Votre on-call doit faire auth hub + TOTP + émettre EAT avant action. C'est 5 minutes supplémentaires quand les secondes comptent.

  1. Sidebar → Playbooks → choisir 'Isolate network'
  2. 'Pre-issue pour agent' → choisir host + fenêtre valide
  3. Condition (heartbeat lost / critical alert) + TOTP
  4. Agent reçoit EAT via WS, l'active lui-même sur condition

Le trigger de condition est dans le log agent + une entrée transparency_log avec event-type 'pre_issued_eat_consumed' pour la traçabilité.

Idem via API (bash) — pour automatisation
curl -X POST https://app.monsys.ai/api/v1/agents/<id>/pre-issued-eats \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-TOTP-Code: 123456" \
  -d '{
    "playbook_id":   "<isolate-network-playbook>",
    "valid_from":    "2026-05-19T18:00:00Z",
    "valid_until":   "2026-05-20T08:00:00Z",
    "conditions": {
      "heartbeat_lost_minutes": 5,
      "or_severity_critical":   true
    },
    "reason": "After-hours coverage for ACME"
  }'
04

Signature multi-parties pour actions irréversibles

Restore DB en production. Un TOTP est insuffisant — vous voulez démontrer que deux engineers ont approuvé (séparation des devoirs SOC2).

  1. Sidebar → Emergency → 'Nouvel EAT niveau 3'
  2. Saisir action + raison + required_approvers=2
  3. Autres admins reçoivent push sur mobile PWA
  4. À N approbations (chacune propre TOTP) → EAT fires

Preuve de quorum dans audit_log + PDF Audit Pack — preuve SOC2 forte pour les contrôles de séparation des devoirs.

Idem via API (bash) — pour automatisation
curl -X POST https://app.monsys.ai/api/v1/emergency/quorum \
  -H "Authorization: Bearer $TOKEN" \
  -H "X-TOTP-Code: 123456" \
  -d '{
    "agent_id": "<id>",
    "actions": [{ "kind": "run_playbook", "id": "db-restore" }],
    "reason": "Restore 2026-04-15 snapshot per TKT-9001",
    "required_approvers": 2
  }'

# Other admins receive ntfy push → approve in mobile PWA
# with their OWN TOTP. Split-control: no engineer can approve twice.
05

Impersonation RBAC pour support cross-tenant

Votre MSP-engineer doit faire une action dans le contexte ACME. Re-login par tenant = friction ; un seul compte super-admin = audit non sûr.

  1. Tenant switcher top-right → choisir 'ACME' + 'Impersonate'
  2. Saisir raison + durée 60min + TOTP
  3. Travailler en contexte ACME — toutes actions ont double acteur
  4. Client voit 'impersonation_started' dans son Audit Pack

Le client voit impersonation_started dans son propre Audit Pack — pas de surprise dans les audit trails. Terminer tôt via /impersonate/end.

Idem via API (bash) — pour automatisation
curl -X POST https://app.monsys.ai/api/v1/auth/impersonate \
  -H "Authorization: Bearer $MSP_ADMIN_TOKEN" \
  -H "X-TOTP-Code: 123456" \
  -d '{
    "tenant_id": "<acme_uuid>",
    "duration_minutes": 60,
    "reason": "Investigating alert #847 on web-03"
  }'

# Auto-expire 60min. Client sees impersonation_started
# event in their own audit pack — no surprises.

Autres rôles

Lire la doc pratique détaillée