Télémétrie
Télémétrie
Dodock contient un module de télémétrie, frappe.utils.telemetry, qui peut envoyer des événements d'usage à un serveur Pulse, comme Frappe Framework. Dokos n'exploite pas encore de serveur de télémétrie. Sur une installation Dokos standard, aucun serveur n'est configuré : rien n'est capturé, mis en file ni envoyé, et le module ne fait aucun appel réseau. Sentry est désactivé.
Cette page s'adresse aux développeurs et aux administrateurs de serveur.
Conditions d'envoi
Une seule condition gouverne la capture, la file d'attente et l'envoi. La télémétrie est active seulement si toutes ces conditions sont réunies :
| Condition | Où la régler |
|---|---|
Une clé pulse_api_key | Configuration du site |
Un hôte pulse_host (aucun hôte par défaut) | Configuration du site |
La case enable_telemetry cochée | Paramètres système (champ masqué) |
Le mode développeur désactivé, sauf si pulse_force_enabled est défini | Configuration du site |
Un refus de l'utilisateur l'emporte toujours : si enable_telemetry vaut 0, aucun événement n'est capturé, même avec pulse_force_enabled. Quand la télémétrie est inactive, la tâche planifiée send_queued_events vide la file sans rien envoyer.
Les clés facultatives pulse_ingest_endpoint, pulse_identify_endpoint, pulse_alias_endpoint et fc_team règlent les adresses d'envoi et l'équipe.
Consentement dans l'assistant de configuration
Quand un serveur Pulse est configuré, le premier écran de l'assistant de configuration affiche la case « Share usage data to help us improve ». Elle est décochée par défaut : la télémétrie demande un accord explicite. Le choix est enregistré avant le premier événement de configuration. Si l'utilisateur ne coche pas la case, aucun événement n'est capturé.
Après l'installation, la case enable_telemetry reste masquée dans les Paramètres système. Seul un administrateur de serveur peut la changer, par exemple avec bench --site <site> console.
Événements de Dodock
Quand la télémétrie est active, Dodock envoie :
- les événements de l'assistant de configuration ;
app_heartbeat, au plus une fois toutes les 6 heures par application ;switched_to_apps_navigation;- depuis le navigateur, les pages vues (pour un site de moins de 15 jours, noms masqués) et les événements d'onboarding.
L'utilisateur est remplacé par un identifiant anonyme : user_ suivi d'un hachage de l'adresse et du site.
Envoyer un événement
from frappe.utils.telemetry import capture
capture("export_lance", "mon_app", properties={"lignes": 120})
La signature est capture(event, app, **kwargs). Les arguments nommés vont au client Pulse : properties, user, team, captured_at, interval, site. Sans télémétrie active, l'appel ne fait rien et ne met rien en file.
Le module est marqué comme interne : son interface peut changer sans préavis.
N'envoyez jamais de donnée personnelle : nom, adresse e-mail, montant, texte libre.
Événements de HRMS
HRMS envoie ses événements avec hrms.telemetry.capture. Il ne garde que les booléens, les nombres et certaines valeurs de liste fixes. Il n'envoie rien pendant une installation, une migration, un patch, un test ou un import.
| Type | Exemples d'événements |
|---|---|
| Validation d'un document | leave_application_submitted, expense_claim_submitted, attendance_request_submitted, shift_request_submitted, payroll_entry_submitted, appraisal_submitted, interview_submitted |
| Premier usage, dans les 30 jours après l'installation | first_employee_created, shift_type_configured, leave_type_configured, salary_structure_created, recruitment_started, performance_cycle_started, employee_onboarding_started, first_salary_slip_created, first_attendance_marked |
| Résumé quotidien | attendance_daily_summary : employés actifs, pointages, présences validées et taux de participation de la veille |
Le DocType HR Telemetry Milestone garde la trace des événements de premier usage, pour ne les envoyer qu'une fois.