| Crates.io | detsys-ids-client |
| lib.rs | detsys-ids-client |
| version | 0.6.2 |
| created_at | 2025-02-07 16:05:15.585678+00 |
| updated_at | 2025-09-01 23:51:10.895516+00 |
| description | A client for install.determinate.systems. |
| homepage | |
| repository | |
| max_upload_size | |
| id | 1547122 |
| size | 202,829 |
A client for install.determinate.systems, in particular the feature flagging/configuration and event collection.
The event collection data is explicitly PostHog compatible.
The collected properties are not identifying. You can see our privacy policy at https://determinate.systems/policies/privacy/.
flowchart TD
Recorder --> Collator
Storage --> Collator
ConfigurationProxy --> Recorder
subgraph Worker
Collator --> Submitter
SystemSnapshotter --> Collator
Submitter --> Transport
Transport --> ConfigurationProxy
end
Transport --> Backend["File / HTTP Backend"]
Components:
SrvHttp: The default if no endpoint is specified (ie: None is passed). The provided endpoint record will be queried for SRV records. Each server in the record will be used in rotation, and for fallback if the backend is not behaving. Beyond that, it behaves like the HTTP transport.
File: Will try to parse the endpoint as-is, or with file:// prefixed on it.
With the File endpoint, the DETSYS_IDS_CHECKIN_FILE environment variable can point to a check-in configuration document to read.
Note: You can pass an endpoint of file:///dev/stdout for interactive debugging.
HTTP: takes the configured endpoint and sets the URL path to /check-in for the checkin process, and /events for event submission.
DETSYS_CORRELATION -- A JSON blob that is set by detsys-ts and passes down some anonymized context about the GitHub Actions run. It can also contain an arbitrary set of event properties.DETSYS_IDS_CHECKIN_FILE -- When using the File transport, this environment variable can point to a Checkin-compatible JSON file to specify features and options.DETSYS_IDS_IN_CI -- Set to 1 to explicitly indicate this run is in CI.DETSYS_IDS_TELEMETRY -- set to disabled to turn off telemetry.DETSYS_IDS_TRANSPORT -- Defaults to using the SrvHttp method, but set to file:///.... to write IDS event data to a file.The correlation data is mixed in to the event data by the Collator, and:
$session_id is preferred over generating a new one.$anon_distinct_id is preferred over generating a new one.distinct_id is used if the user of the library doesn't explicitly pass a distinct ID.$device_id is used instead of generating a new one if the user doesn't explicitly pass a device ID.$groups is merged in to the user-provided groups.Note that $anon_distinct_id, distinct_id, and $device_id are disregarded if the Storage implementation has stored properties available.
$XDG_STATE_HOME/systems.determinate.detsys-ids-client/storage.json -- Contains data persisted by the JsonFile Storage implementation./var/lib/determinate/identity.json -- Contains correlation data that is provided by an external tool.
This library only reads this file for aiding with feature flagging support.