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)