artisan-build / telltale-client
NativePHP client package for reporting device analytics to a self-hosted Telltale server.
Requires
- php: ^8.4
- ext-json: *
- ext-sqlite3: *
- ext-zlib: *
- artisan-build/telltale-contracts: ^1.0
- illuminate/console: ^13.0
- illuminate/encryption: ^13.0
- illuminate/http: ^13.0
- illuminate/queue: ^13.0
- illuminate/support: ^13.0
- psr/http-message: ^2.0
Requires (Dev)
- larastan/larastan: ^3.9
- laravel/pint: ^1.27
- orchestra/testbench: ^11.0
- pestphp/pest: ^4.7
- phpstan/phpstan: ^2.1
Suggests
- nativephp/desktop: Use Telltale in a NativePHP Desktop application.
- nativephp/mobile: Use Telltale in a NativePHP Mobile application.
Provides
None
Conflicts
None
Replaces
None
README
Device-side analytics and error reporting for NativePHP Mobile and Desktop applications.
The auto-discovered provider captures supported platform signals into a local SQLite outbox. Capture never sends an HTTP request inline. Mobile's database queue worker or Desktop's queue/scheduler drains the outbox later.
Correlation Header
Laravel HTTP requests receive X-Telltale-Session automatically. Plain Guzzle clients can push the
container-resolved TraceHeaderMiddleware onto their handler stack. Its stable v1 value is:
v1;session=<raw-session-uuid>;install=<sha256-install-hash>
The raw install id, ingest value, and install bearer token are never included. Registration and ingest requests are excluded, and opting out removes the header.
v1 Error Coverage
Laravel-reported exceptions and failed queue jobs are captured.
Not captured in v1
- Mobile AsyncTask failures are consumed by NativePHP before global Laravel dispatch.
- Exceptions inside SuperNative screens are rendered by NativePHP without reaching Laravel's exception handler.
Telltale's NativePHP asks are a globally dispatched AsyncTask failure event (or supported hook) and a reporting hook for SuperNative screen exceptions. Telltale does not add framework or plugin workarounds for either limitation in v1.