From 98e4d6e889d19a3326640d8d120039db17107ea8 Mon Sep 17 00:00:00 2001 From: Roger Coll Date: Fri, 27 Sep 2024 13:29:01 +0200 Subject: [PATCH 1/4] add User-agent OS attributes --- docs/attributes-registry/user-agent.md | 31 ++++++++++ model/user-agent/registry.yaml | 80 ++++++++++++++++++++++++++ 2 files changed, 111 insertions(+) diff --git a/docs/attributes-registry/user-agent.md b/docs/attributes-registry/user-agent.md index b7a10cd630..a651617b83 100644 --- a/docs/attributes-registry/user-agent.md +++ b/docs/attributes-registry/user-agent.md @@ -6,6 +6,9 @@ # User Agent +- [User-agent Attributes](#user-agent-attributes) +- [User-agent OS Attributes](#user-agent-os-attributes) + ## User-agent Attributes Describes user-agent attributes. @@ -19,3 +22,31 @@ Describes user-agent attributes. **[1]:** [Example](https://www.whatsmyua.info) of extracting browser's name from original string. In the case of using a user-agent for non-browser products, such as microservices with multiple names/versions inside the `user_agent.original`, the most significant name SHOULD be selected. In such a scenario it should align with `user_agent.version` **[2]:** [Example](https://www.whatsmyua.info) of extracting browser's version from original string. In the case of using a user-agent for non-browser products, such as microservices with multiple names/versions inside the `user_agent.original`, the most significant version SHOULD be selected. In such a scenario it should align with `user_agent.name` + +## User-agent OS Attributes + +Describes the OS user-agent attributes. + +| Attribute | Type | Description | Examples | Stability | +| --------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ | ---------------------------------------------------------------- | +| `user_agent.os.build_id` | string | Unique identifier for a particular build or compilation of the operating system. | `TQ3C.230805.001.B2`; `20E247`; `22621` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `user_agent.os.description` | string | Human readable (not intended to be parsed) OS version information, like e.g. reported by `ver` or `lsb_release -a` commands. | `Microsoft Windows [Version 10.0.18363.778]`; `Ubuntu 18.04.1 LTS` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `user_agent.os.name` | string | Human readable operating system name. | `iOS`; `Android`; `Ubuntu` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `user_agent.os.type` | string | The operating system type. | `windows`; `linux`; `darwin` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `user_agent.os.version` | string | The version string of the operating system as defined in [Version Attributes](/docs/resource/README.md#version-attributes). | `14.2.1`; `18.04.1` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | + +`user_agent.os.type` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used. + +| Value | Description | Stability | +| -------------- | ------------------------------------ | ---------------------------------------------------------------- | +| `aix` | AIX (Advanced Interactive eXecutive) | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `darwin` | Apple Darwin | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `dragonflybsd` | DragonFly BSD | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `freebsd` | FreeBSD | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `hpux` | HP-UX (Hewlett Packard Unix) | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `linux` | Linux | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `netbsd` | NetBSD | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `openbsd` | OpenBSD | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `solaris` | SunOS, Oracle Solaris | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `windows` | Microsoft Windows | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `z_os` | IBM z/OS | ![Experimental](https://img.shields.io/badge/-experimental-blue) | diff --git a/model/user-agent/registry.yaml b/model/user-agent/registry.yaml index 2b856ecdf5..daee91aede 100644 --- a/model/user-agent/registry.yaml +++ b/model/user-agent/registry.yaml @@ -35,3 +35,83 @@ groups: using a user-agent for non-browser products, such as microservices with multiple names/versions inside the `user_agent.original`, the most significant version SHOULD be selected. In such a scenario it should align with `user_agent.name` + + - id: registry.user_agent.os + type: attribute_group + display_name: User-agent OS Attributes + brief: "Describes the OS user-agent attributes." + attributes: + - id: user_agent.os.type + type: + members: + - id: windows + value: 'windows' + brief: "Microsoft Windows" + stability: experimental + - id: linux + value: 'linux' + brief: "Linux" + stability: experimental + - id: darwin + value: 'darwin' + brief: "Apple Darwin" + stability: experimental + - id: freebsd + value: 'freebsd' + brief: "FreeBSD" + stability: experimental + - id: netbsd + value: 'netbsd' + brief: "NetBSD" + stability: experimental + - id: openbsd + value: 'openbsd' + brief: "OpenBSD" + stability: experimental + - id: dragonflybsd + value: 'dragonflybsd' + brief: "DragonFly BSD" + stability: experimental + - id: hpux + value: 'hpux' + brief: "HP-UX (Hewlett Packard Unix)" + stability: experimental + - id: aix + value: 'aix' + brief: "AIX (Advanced Interactive eXecutive)" + stability: experimental + - id: solaris + value: 'solaris' + brief: "SunOS, Oracle Solaris" + stability: experimental + - id: z_os + value: 'z_os' + brief: "IBM z/OS" + stability: experimental + brief: > + The operating system type. + stability: experimental + - id: user_agent.os.description + type: string + stability: experimental + brief: > + Human readable (not intended to be parsed) OS version information, + like e.g. reported by `ver` or `lsb_release -a` commands. + examples: ['Microsoft Windows [Version 10.0.18363.778]', 'Ubuntu 18.04.1 LTS'] + - id: user_agent.os.name + type: string + stability: experimental + brief: 'Human readable operating system name.' + examples: ['iOS', 'Android', 'Ubuntu'] + - id: user_agent.os.version + type: string + stability: experimental + brief: > + The version string of the operating system as defined in + [Version Attributes](/docs/resource/README.md#version-attributes). + examples: ['14.2.1', '18.04.1'] + - id: user_agent.os.build_id + type: string + stability: experimental + brief: 'Unique identifier for a particular build or compilation of the operating system.' + examples: ['TQ3C.230805.001.B2', '20E247', '22621'] From b13e037d75855305601ee5d3a4215b3915b5ba96 Mon Sep 17 00:00:00 2001 From: Roger Coll Date: Tue, 1 Oct 2024 09:31:14 +0200 Subject: [PATCH 2/4] chore: add changelog file --- .chloggen/user_agent_os.yaml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100755 .chloggen/user_agent_os.yaml diff --git a/.chloggen/user_agent_os.yaml b/.chloggen/user_agent_os.yaml new file mode 100755 index 0000000000..8cfa018a94 --- /dev/null +++ b/.chloggen/user_agent_os.yaml @@ -0,0 +1,22 @@ +# Use this changelog template to create an entry for release notes. +# +# If your change doesn't affect end users you should instead start +# your pull request title with [chore] or use the "Skip Changelog" label. + +# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix' +change_type: 'enhancement' + +# The name of the area of concern in the attributes-registry, (e.g. http, cloud, db) +component: user-agent + +# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`). +note: Add user-agent OS attributes + +# Mandatory: One or more tracking issues related to the change. You can use the PR number here if no issue exists. +# The values here must be integers. +issues: [1433] + +# (Optional) One or more lines of additional information to render under the primary note. +# These lines will be padded with 2 spaces and then inserted directly into the document. +# Use pipe (|) for multiline entries. +subtext: From e4ad5bbd177c58d534f4fec5d5c180ac86f3aeb4 Mon Sep 17 00:00:00 2001 From: Roger Coll Date: Wed, 6 Nov 2024 17:57:43 +0100 Subject: [PATCH 3/4] fix: table generation --- docs/attributes-registry/user-agent.md | 40 +++++++++++++------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/docs/attributes-registry/user-agent.md b/docs/attributes-registry/user-agent.md index 271512d877..c3535f6b3c 100644 --- a/docs/attributes-registry/user-agent.md +++ b/docs/attributes-registry/user-agent.md @@ -27,26 +27,26 @@ Describes user-agent attributes. Describes the OS user-agent attributes. -| Attribute | Type | Description | Examples | Stability | -| --------------------------- | ------ | ---------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ | ---------------------------------------------------------------- | -| `user_agent.os.build_id` | string | Unique identifier for a particular build or compilation of the operating system. | `TQ3C.230805.001.B2`; `20E247`; `22621` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | -| `user_agent.os.description` | string | Human readable (not intended to be parsed) OS version information, like e.g. reported by `ver` or `lsb_release -a` commands. | `Microsoft Windows [Version 10.0.18363.778]`; `Ubuntu 18.04.1 LTS` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | -| `user_agent.os.name` | string | Human readable operating system name. | `iOS`; `Android`; `Ubuntu` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | -| `user_agent.os.type` | string | The operating system type. | `windows`; `linux`; `darwin` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | -| `user_agent.os.version` | string | The version string of the operating system as defined in [Version Attributes](/docs/resource/README.md#version-attributes). | `14.2.1`; `18.04.1` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| Attribute | Type | Description | Examples | Stability | +|---|---|---|---|---| +| `user_agent.os.build_id` | string | Unique identifier for a particular build or compilation of the operating system. | `TQ3C.230805.001.B2`; `20E247`; `22621` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `user_agent.os.description` | string | Human readable (not intended to be parsed) OS version information, like e.g. reported by `ver` or `lsb_release -a` commands. | `Microsoft Windows [Version 10.0.18363.778]`; `Ubuntu 18.04.1 LTS` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `user_agent.os.name` | string | Human readable operating system name. | `iOS`; `Android`; `Ubuntu` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `user_agent.os.type` | string | The operating system type. | `windows`; `linux`; `darwin` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `user_agent.os.version` | string | The version string of the operating system as defined in [Version Attributes](/docs/resource/README.md#version-attributes). | `14.2.1`; `18.04.1` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | `user_agent.os.type` has the following list of well-known values. If one of them applies, then the respective value MUST be used; otherwise, a custom value MAY be used. -| Value | Description | Stability | -| -------------- | ------------------------------------ | ---------------------------------------------------------------- | -| `aix` | AIX (Advanced Interactive eXecutive) | ![Experimental](https://img.shields.io/badge/-experimental-blue) | -| `darwin` | Apple Darwin | ![Experimental](https://img.shields.io/badge/-experimental-blue) | -| `dragonflybsd` | DragonFly BSD | ![Experimental](https://img.shields.io/badge/-experimental-blue) | -| `freebsd` | FreeBSD | ![Experimental](https://img.shields.io/badge/-experimental-blue) | -| `hpux` | HP-UX (Hewlett Packard Unix) | ![Experimental](https://img.shields.io/badge/-experimental-blue) | -| `linux` | Linux | ![Experimental](https://img.shields.io/badge/-experimental-blue) | -| `netbsd` | NetBSD | ![Experimental](https://img.shields.io/badge/-experimental-blue) | -| `openbsd` | OpenBSD | ![Experimental](https://img.shields.io/badge/-experimental-blue) | -| `solaris` | SunOS, Oracle Solaris | ![Experimental](https://img.shields.io/badge/-experimental-blue) | -| `windows` | Microsoft Windows | ![Experimental](https://img.shields.io/badge/-experimental-blue) | -| `z_os` | IBM z/OS | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| Value | Description | Stability | +|---|---|---| +| `aix` | AIX (Advanced Interactive eXecutive) | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `darwin` | Apple Darwin | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `dragonflybsd` | DragonFly BSD | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `freebsd` | FreeBSD | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `hpux` | HP-UX (Hewlett Packard Unix) | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `linux` | Linux | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `netbsd` | NetBSD | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `openbsd` | OpenBSD | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `solaris` | SunOS, Oracle Solaris | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `windows` | Microsoft Windows | ![Experimental](https://img.shields.io/badge/-experimental-blue) | +| `z_os` | IBM z/OS | ![Experimental](https://img.shields.io/badge/-experimental-blue) | From 1b46946a1d752f6e7fc157c22ec6670262eb7b11 Mon Sep 17 00:00:00 2001 From: Roger Coll Date: Wed, 27 Nov 2024 08:53:51 +0100 Subject: [PATCH 4/4] remove unused description and build_id attributes --- docs/attributes-registry/user-agent.md | 2 -- model/user-agent/registry.yaml | 12 ------------ 2 files changed, 14 deletions(-) diff --git a/docs/attributes-registry/user-agent.md b/docs/attributes-registry/user-agent.md index c3535f6b3c..ec79c38109 100644 --- a/docs/attributes-registry/user-agent.md +++ b/docs/attributes-registry/user-agent.md @@ -29,8 +29,6 @@ Describes the OS user-agent attributes. | Attribute | Type | Description | Examples | Stability | |---|---|---|---|---| -| `user_agent.os.build_id` | string | Unique identifier for a particular build or compilation of the operating system. | `TQ3C.230805.001.B2`; `20E247`; `22621` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | -| `user_agent.os.description` | string | Human readable (not intended to be parsed) OS version information, like e.g. reported by `ver` or `lsb_release -a` commands. | `Microsoft Windows [Version 10.0.18363.778]`; `Ubuntu 18.04.1 LTS` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | | `user_agent.os.name` | string | Human readable operating system name. | `iOS`; `Android`; `Ubuntu` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | | `user_agent.os.type` | string | The operating system type. | `windows`; `linux`; `darwin` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | | `user_agent.os.version` | string | The version string of the operating system as defined in [Version Attributes](/docs/resource/README.md#version-attributes). | `14.2.1`; `18.04.1` | ![Experimental](https://img.shields.io/badge/-experimental-blue) | diff --git a/model/user-agent/registry.yaml b/model/user-agent/registry.yaml index daee91aede..f82909dfe2 100644 --- a/model/user-agent/registry.yaml +++ b/model/user-agent/registry.yaml @@ -91,13 +91,6 @@ groups: brief: > The operating system type. stability: experimental - - id: user_agent.os.description - type: string - stability: experimental - brief: > - Human readable (not intended to be parsed) OS version information, - like e.g. reported by `ver` or `lsb_release -a` commands. - examples: ['Microsoft Windows [Version 10.0.18363.778]', 'Ubuntu 18.04.1 LTS'] - id: user_agent.os.name type: string stability: experimental @@ -110,8 +103,3 @@ groups: The version string of the operating system as defined in [Version Attributes](/docs/resource/README.md#version-attributes). examples: ['14.2.1', '18.04.1'] - - id: user_agent.os.build_id - type: string - stability: experimental - brief: 'Unique identifier for a particular build or compilation of the operating system.' - examples: ['TQ3C.230805.001.B2', '20E247', '22621']