PROTOTYPE Clickable mockup · simulates the finished app ◃ Product overview
Petanque Life Operator Console
Production OP

Surveys

Operator health view for the survey domain across all tenants — job queue, k-anonymity suppression, cross-tenant distribution mesh and GDPR erasure. Read-only over tenant content: operators never see individual responses.

47
Active surveys
12
Tenants with surveys
18 902
Responses (30 d)
214
Suppressed cells (k=5)
6
Cross-tenant distributions
1
Text-analysis jobs queued
0
Failed jobs
3
OnErasure runs (7 d)
Job queue & workers
JobScheduleStatusLast run
Analytics recompute (sweep) Every 15 min OK 2 min ago
Reminder tick (invitation cadence) Daily 09:00 OK 3 h ago
Text analysis (TF-IDF + k-means) Python sidecar · on demand Queue: 1 running
OnErasure hook (survey_response) GDPR-triggered OK
Cross-tenant distribution mesh (opt-in federation)
Origin → targetsSurveyOpt-in statusAggregate volumeHealth
FIPJP → 24 member nations Rule consultation: tir de précision 18 accepted · 4 pending · 2 rejected 4 812 responses (agg.) OK
CEP → 12 European nations Referee grade structure 9 accepted · 2 pending · 1 rejected 1 516 responses (agg.) OK
Svenska Bouleförbundet National only (no cross-tenant) 312 responses OK

Data isolation invariant: responses are stored in the receiving tenant's database; the origin tenant sees aggregated analytics only. k-anonymity is re-applied after every cross-tenant merge.

Privacy invariants (monitored)
🔒 Anonymous surveys — raw export blocked
Model level: no respondent_ref exists · 12 anonymous surveys platform-wide
🔒 k-anonymity n=5 — recursive suppression
Applied to every segment cell + re-applied after cross-tenant merge · 214 suppressed cells (30 d)
🔒 Pseudonymous dedup — sha256(survey_id + user_id)
Deterministic dedup, not reversible · no demographics stored
🔒 OnErasure hook — survey_response
GDPR erasure nulls respondent_ref + demographic snapshot · 3 runs (7 d)
Loading survey health…
No active surveys on the platform. (empty state)
Text-analysis sidecar unreachable — jobs queued, will retry. (error state)