LanguageValues and typesStandard typesWeb and network
UserAgent
On this page
What an HTTP client says it is: curl/8.7.1.
Use it to record how a request was made, such as in an audit log. A client can claim anything, so don't use it to decide what someone may do.
Shape
One value, held as text in one set form, with no parts: ExampleBot/1.0 (+https://example.com/bot).
Example
UserAgent("curl/8.7.1")UserAgent(raw) checks the text, and text that isn't one breaks the format rule.
text.parse(raw, as: UserAgent) reads one from text that comes from outside. Text that isn't one at all fails malformed, such as (compatible), curl /8.7.1 or Mozilla/5.0 (X11).
Good to know
==tells you whether two are the same.<andlist.sort_bydon't take it.- A field that holds one counts as personal data (
online), so you don't mark it yourself.
In JSON
A string, in a request, a response or json.write:
"curl/8.7.1""Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36""ExampleBot/1.0 (+https://example.com/bot)"
Details
Text form, storage, how it is shown, and operations
UserAgent is in the group Web and network, and has been in Jadpo since 0.1.0.
Text form
text.from writes one standard text form, the same form text.parse reads back: curl/8.7.1, Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 and ExampleBot/1.0 (+https://example.com/bot).
How it is stored
It is stored in one column named for the field, of type text. Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 is stored as 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36'.
How it is shown to people
text.format(value, locale:) shows it to people in their locale.
With locale: Locale.en_gb:
| Value | Shown |
|---|---|
curl/8.7.1 |
curl/8.7.1 |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 |
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36 |
ExampleBot/1.0 (+https://example.com/bot) |
ExampleBot/1.0 (+https://example.com/bot) |
Operations
It also takes text.parse, text.from, text.format, json.read, json.write and ==. How every standard type behaves says how they work.
Markdown for agents: /docs/types/type-user-agent.md.Built from Jadpo main at aee2e8f.