PROTOTYPE Clickable mockup Β· simulates the finished app β—ƒ Product overview
Petanque Life Operator Console
Production OP

Access control

Operator roles, machine actors and platform-level access safety. Every grant, deny and block below is audited. Console access itself is capability-gated (deny by default).

Role catalog (platform-defined, immutable)
sys_support Impersonation with consent, ticket handling, read-only customer base
sys_finance Payouts, invoicing, payment configuration
sys_security Role grants, fraud flags, blocklists, tier changes
sys_operator Deploys, feature flags, operations dashboards
Operator lookup & grant
maria.ek@petanque.life
sys_security Β· sys_support Β· granted by j.holm 12 May
jonas.holm@petanque.life
sys_operator Β· granted by m.ek 3 Apr
β›”
Self-grant blocked. You cannot grant a role to your own account β€” ask a second operator (four-eyes).
πŸ”
Re-authentication required. Role mutations need a session fresher than 5 minutes.
Service accounts (M2M, platform scope)
prod-bootstrap
tenants:write Β· seed:run Β· 90-day token Β· IP 10.4.0.0/16
status-page-publisher
cms:write Β· 90-day token Β· IP β€”

M2M tokens never bind as a human session. Secrets are hash-only server-side and shown once at mint.

Agent tokens (impersonation, revocable)
●
tok_a91f Β· impersonates qa-runner@petanque.life
expires in 6 h Β· issued by m.ek
β—‹
tok_77c2 Β· impersonates seed-bot@petanque.life
revoked 28 Jun
Agents are hard-blocked from finance mutations (scope block) β€” even when impersonating sys_finance. Dev "login-as" is unmounted in production.
Signup queue with fraud signals
boulesud.example (federation)
Turnstile 0.9 Β· no signals
clean
fastclub-x.example (club)
Honeypot + 4 signups same /24 Β· filled in 3 s
flagged
petanque-mail.example (club)
Blocked email domain
blocked

Signals: IP clustering (/24), email-domain repeats, honeypot, fill-time, Turnstile score, payment-decline rate. Flagging opens a SEV3 incident on alert severity.

Email-domain blocklist
petanque-mail.example βœ•disposable-inbox.example βœ•tempbox.example βœ•
Rate limiting & abuse monitor
OTP starts / min
412 Β· under quota
Verify backoff hits (24 h)
38
429s served (24 h)
112
OIDC authorize / min per IP
cap 10

Enumeration-safe responses; exponential verify backoff with CAPTCHA escalation. Limits are per-IP and per-recipient.

Tier summary β€” Nordvik Boule (Club, standalone)
CLUB Included: members, competitions, venues, kiosk Excluded: AI plane, public API, chain leagues
Active addons
F18.02 β€” Public API
expires 31 Dec 2026 Β· billing INV-2233 Β· "pilot with district site"
Grant addon
Change tenant type
FIPJPCONTINENTALFEDERATIONCLUBAFFILIATEVENUECHAINEVENTINDIVIDUAL

Changing tenant type requires sys_security + fresh authentication and emits a platform event.

Deny / spoof / block events
capability_denied competition:sanction β€” clubadmin@nordvik β†’ 403 2 Jul 10:41
tenant_spoof X-Tenant-Id mismatch vs JWT claim β€” request rejected 2 Jul 09:17
agent_action_blocked finance.payouts.execute β€” agent tok_a91f (scope block) 1 Jul 16:02
sys.role.grant sys_support β†’ maria.ek (by j.holm, four-eyes) 12 May 09:00
Live stream lands here
Full audit search & retention is delivered by the platform audit pipeline; this view reads it.