Expand description
teksilo-telemetry — privacy-respecting product analytics for Teksilo.
This crate ships the foundational pieces:
ConsentStore— persisted consent state atopteksilo_settings::SettingsFile.InstallId— pseudonymous-mode UUID with 13-month rotation.TelemetryBundle/OpenedTelemetry— declarative configuration following the same pattern asteksilo_settings::SettingsBundle.DynamicReporter— runtime mode-switch wrapper holding both anonymous-mode and pseudonymous-mode adapters and forwarding to the active one.TelemetryExt— convenience accessors forBuildContext/EventContext(use teksilo_telemetry::TelemetryExt;).- In-memory event queue.
StubReporter— testing-only adapter that collects events into aVec.- Hand-written framework events in
generated.
Re-exports the pure trait/type surface from teksilo_core::telemetry
so apps need only use teksilo_telemetry::* to access the full API.
Re-exports§
pub use bundle::DataResidencyRegion;pub use bundle::OpenedTelemetry;pub use bundle::PrivacyPolicy;pub use bundle::TelemetryBundle;pub use bundle::TelemetryBundleError;pub use bundle::TelemetryMode;pub use consent::ConsentFile;pub use consent::ConsentStore;pub use consent::PersistedConsentState;pub use dynamic_reporter::DynamicReporter;pub use ext::TelemetryExt;pub use install_id::InstallId;pub use install_id::InstallIdFile;pub use queue::EventQueue;pub use queue::InMemoryEventQueue;pub use queue::PersistentEventQueue;pub use queue::PersistentQueueError;pub use stub::StubReporter;
Modules§
- bundle
TelemetryBundle— declarative configuration for theTeksiloAppBuilderintegration.- consent
- Persisted consent state.
- dynamic_
reporter - Runtime-switchable wrapper holding both anonymous-mode and pseudonymous-mode adapters.
- ext
- Extension traits exposing telemetry services on
BuildContext/EventContext. - generated
- Hand-written framework-event emitters.
- install_
id - Pseudonymous-mode install identifier.
- queue
- Event queue —
EventQueuetrait + two impls. - scopes
SettingsKey<bool>constants for the per-scope toggles.- stub
- Stub reporter for tests.
Structs§
- Consent
Scope - Per-purpose consent toggles. Each is independent.
- Event
- A telemetry event in flight.
- F64Bucket
- Owned
Event - Owned
Prop - Prop
- One key/value pair on an event. Keys are always
&'static str. - Remote
Data Export - Server-side data fetched by
UsageReporter::fetch_remote_data. - Remote
Event - Telemetry
Context - Registration type for the dispatch tap.
Enums§
- Consent
State - Top-level consent state, persisted via
teksilo-telemetry::ConsentStore. - Event
Category - Intent
Source - Where an intent came from.
Intent::newstarts every intent atProgrammatic, and the framework’s activation paths override it before dispatch:Shortcutwhen a chord match produces the intent,Handlerfor anything raised from inside a gesture handler (button taps included),Accessibilityfor an AccessKit action, andMenufor a handler that wrapped itself inEventContext::with_intent_source. Read by the dispatch tap to fill thesourceprop onintent.dispatched.Unknownis left for callers that have no origin to report; no framework dispatch site emits it. - Owned
Prop Value - Prop
Value - Closed enum of allowlisted property values. There is no
Stringvariant — anything dynamic must be length-bounded by the schema or pre-bucketed. This is the type-system enforcement of the data- minimisation rule: an app author physically cannot pass a runtimeStringfrom aTextFieldbecause the codegen’d emit signature won’t accept one. - Remote
Value - JSON-shaped value type for fetched server records. Kept minimal
(no serde dep at the
teksilo-corelevel); adapter crates may map to their own richer types as needed. - Telemetry
Error
Traits§
- Usage
Reporter - The observability sink. Implemented by adapter crates
(
teksilo-analytics-plausible,teksilo-analytics-posthog, etc.) and byteksilo-telemetry::DynamicReporter(which forwards to whichever concrete adapter is currently active).