Périmètre V1
En V1, il n’y a qu’un seul projet et une seule clé API. Le risque principal n’est pas l’abus externe mais l’hygiène de base : ne pas exposer inutilement la clé API ni les endpoints d’infrastructure.Clé API
- Une clé unique par projet, générée avec haute entropie (
jch_+secrets.token_urlsafe(32)). - Self-service depuis le dashboard (JWT) : reveal, copy, regenerate.
- La régénération invalide immédiatement l’ancienne clé.
- Permission V1 :
ingestion_write(écriture d’événements uniquement).
Données & PII
- Le SDK sanitize les
propertiescôté client : blocage des clés sensibles, troncature texte, plafond 32 Ko. Voir Sanitize. - IP publique : capturée côté serveur (
X-Forwarded-For), stockée dansproperties.server.clientIp+ipHash(SHA-256). Le client ne collecte jamais l’IP. - Géolocalisation : enrichissement serveur uniquement (
properties.server.geo). V1 = stubcountry: unknown; GeoIP réel en V2.
Infrastructure
- ClickHouse et Postgres ne sont pas exposés publiquement — accès restreint à l’API.
- L’API d’ingestion est le seul composant exposé : ingestion (clé projet) + lecture dashboard (JWT).
- Secrets (clé Anthropic, secret JWT) : jamais dans le code.
Screenshots de heatmap
Les captures tournent sur l’API, pas dans le navigateur du visiteur. Le crawler n’ouvre queproject.website_url + path après les contrôles SSRF (validate_public_http_url). Les JPEG sont dans un préfixe Minio privé (heatmap-captures/) et passent par un endpoint dashboard authentifié.
Ne pas mettre ces objets sur la policy publique des avatars.
Reporté à V2
Scoping des clés
Une clé par connecteur, multi-clés actives, grace period post-rotation.
Hash write-only
Reveal impossible sans rotation.
Rôles & permissions
Gestion multi-utilisateurs et rôles.
Rétention & RGPD
Politique de rétention et suppression des données personnelles.
Rate limiting
Détection d’abus sur l’ingestion.
Chiffrement au repos
Spécifique aux données personnelles dans
properties.Ce document ne remplace pas un audit de sécurité formel. Il documente l’hygiène
minimale acceptable pour un usage dogfood mono-tenant.