Skip to content

Commit 31b9301

Browse files
heyamslmolkova
andauthored
Update enduser domain and add enduser.pseudo.id (#1456)
Co-authored-by: Liudmila Molkova <[email protected]>
1 parent 360499a commit 31b9301

File tree

8 files changed

+79
-80
lines changed

8 files changed

+79
-80
lines changed

.chloggen/add_enduser_pseudo_id.yaml

+23
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# Use this changelog template to create an entry for release notes.
2+
#
3+
# If your change doesn't affect end users you should instead start
4+
# your pull request title with [chore] or use the "Skip Changelog" label.
5+
6+
# One of 'breaking', 'deprecation', 'new_component', 'enhancement', 'bug_fix'
7+
change_type: enhancement
8+
9+
# The name of the area of concern in the attributes-registry, (e.g. http, cloud, db)
10+
component: enduser
11+
12+
# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
13+
note: Undeprecate 'enduser.id' and introduce new attribute `enduser.pseudo.id`
14+
15+
# Mandatory: One or more tracking issues related to the change. You can use the PR number here if no issue exists.
16+
# The values here must be integers.
17+
issues: [1104]
18+
19+
# (Optional) One or more lines of additional information to render under the primary note.
20+
# These lines will be padded with 2 spaces and then inserted directly into the document.
21+
# Use pipe (|) for multiline entries.
22+
subtext: |
23+
The new attribute `enduser.pseudo.id` is intended to provide a unique identifier of a pseudonymous enduser.

.github/ISSUE_TEMPLATE/bug_report.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ body:
4545
- area:dns
4646
- area:dotnet
4747
- area:elasticsearch
48+
- area:enduser
4849
- area:error
4950
- area:exception
5051
- area:faas

.github/ISSUE_TEMPLATE/change_proposal.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ body:
3737
- area:dns
3838
- area:dotnet
3939
- area:elasticsearch
40+
- area:enduser
4041
- area:error
4142
- area:exception
4243
- area:faas

docs/attributes-registry/enduser.md

+23-2
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,33 @@
33

44
# Enduser
55

6+
- [End User Attributes](#end-user-attributes)
7+
- [Deprecated End User Attributes](#deprecated-end-user-attributes)
8+
9+
## End User Attributes
10+
11+
Describes the end user.
12+
13+
| Attribute | Type | Description | Examples | Stability |
14+
|---|---|---|---|---|
15+
| <a id="enduser-id" href="#enduser-id">`enduser.id`</a> | string | Unique identifier of an end user in the system. It maybe a username, email address, or other identifier. [1] | `username` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
16+
| <a id="enduser-pseudo-id" href="#enduser-pseudo-id">`enduser.pseudo.id`</a> | string | Pseudonymous identifier of an end user. This identifier should be a random value that is not directly linked or associated with the end user's actual identity. [2] | `QdH5CAWJgqVT4rOr0qtumf` | ![Experimental](https://img.shields.io/badge/-experimental-blue) |
17+
18+
**[1] `enduser.id`:** Unique identifier of an end user in the system.
19+
20+
> [!Warning]
21+
> This field contains sensitive (PII) information.
22+
23+
**[2] `enduser.pseudo.id`:** Pseudonymous identifier of an end user.
24+
25+
> [!Warning]
26+
> This field contains sensitive (linkable PII) information.
27+
628
## Deprecated End User Attributes
729

8-
Describes deprecated enduser attributes. Complete enduser namespace has been deprecated
30+
Describes deprecated enduser attributes.
931

1032
| Attribute | Type | Description | Examples | Stability |
1133
|---|---|---|---|---|
12-
| <a id="enduser-id" href="#enduser-id">`enduser.id`</a> | string | Deprecated, use `user.id` instead. | `username` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)<br>Replaced by `user.id` attribute. |
1334
| <a id="enduser-role" href="#enduser-role">`enduser.role`</a> | string | Deprecated, use `user.roles` instead. | `admin` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)<br>Replaced by `user.roles` attribute. |
1435
| <a id="enduser-scope" href="#enduser-scope">`enduser.scope`</a> | string | Deprecated, no replacement at this time. | `read:message, write:files` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)<br>Removed. |

docs/general/attributes.md

-57
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ Particular operations may refer to or require some of these attributes.
2929
- [Client/server example with forward proxy](#clientserver-example-with-forward-proxy)
3030
- [Network connection and carrier attributes](#network-connection-and-carrier-attributes)
3131
- [General remote service attributes](#general-remote-service-attributes)
32-
- [General identity attributes](#general-identity-attributes)
3332
- [General thread attributes](#general-thread-attributes)
3433
- [Source Code Attributes](#source-code-attributes)
3534

@@ -381,62 +380,6 @@ Examples of `peer.service` that users may specify:
381380
- A Redis cache of auth tokens as `peer.service="AuthTokenCache"`.
382381
- A gRPC service `rpc.service="io.opentelemetry.AuthService"` may be hosted in both a gateway, `peer.service="ExternalApiService"` and a backend, `peer.service="AuthService"`.
383382

384-
## General identity attributes
385-
386-
These attributes may be used for any operation with an authenticated and/or authorized enduser.
387-
388-
<!-- semconv identity -->
389-
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
390-
<!-- see templates/registry/markdown/snippet.md.j2 -->
391-
<!-- prettier-ignore-start -->
392-
<!-- markdownlint-capture -->
393-
<!-- markdownlint-disable -->
394-
395-
| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
396-
|---|---|---|---|---|---|
397-
| [`enduser.id`](/docs/attributes-registry/enduser.md) | string | Deprecated, use `user.id` instead. | `username` | `Recommended` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)<br>Replaced by `user.id` attribute. |
398-
| [`enduser.role`](/docs/attributes-registry/enduser.md) | string | Deprecated, use `user.roles` instead. | `admin` | `Recommended` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)<br>Replaced by `user.roles` attribute. |
399-
| [`enduser.scope`](/docs/attributes-registry/enduser.md) | string | Deprecated, no replacement at this time. | `read:message, write:files` | `Recommended` | ![Deprecated](https://img.shields.io/badge/-deprecated-red)<br>Removed. |
400-
401-
<!-- markdownlint-restore -->
402-
<!-- prettier-ignore-end -->
403-
<!-- END AUTOGENERATED TEXT -->
404-
<!-- endsemconv -->
405-
406-
These attributes describe the authenticated user driving the user agent making requests to the instrumented
407-
system. It is expected this information would be propagated unchanged from node-to-node within the system
408-
using the Baggage mechanism. These attributes should not be used to record system-to-system
409-
authentication attributes.
410-
411-
Examples of where the `enduser.id` value is extracted from:
412-
413-
| Authentication protocol | Field or description |
414-
| :---------------------- | :------------------------------ |
415-
| [HTTP Basic/Digest Authentication] | `username` |
416-
| [OAuth 2.0 Bearer Token] | [OAuth 2.0 Client Identifier] value from `client_id` for the [OAuth 2.0 Client Credentials Grant] flow and `subject` or `username` from get token info response for other flows using opaque tokens. |
417-
| [OpenID Connect 1.0 IDToken] | `sub` |
418-
| [SAML 2.0 Assertion] | `urn:oasis:names:tc:SAML:2.0:assertion:Subject` |
419-
| [Kerberos] | `PrincipalName` |
420-
421-
| Framework | Field or description |
422-
| :---------------------- | :------------------------------ |
423-
| [JavaEE/JakartaEE Servlet] | `javax.servlet.http.HttpServletRequest.getUserPrincipal()` |
424-
| [Windows Communication Foundation] | `ServiceSecurityContext.Current.PrimaryIdentity` |
425-
426-
[SAML 2.0 Assertion]: http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html
427-
[HTTP Basic/Digest Authentication]: https://tools.ietf.org/html/rfc2617
428-
[OAuth 2.0 Bearer Token]: https://tools.ietf.org/html/rfc6750
429-
[OAuth 2.0 Client Identifier]: https://tools.ietf.org/html/rfc6749#section-2.2
430-
[OAuth 2.0 Client Credentials Grant]: https://tools.ietf.org/html/rfc6749#section-4.4
431-
[OpenID Connect 1.0 IDToken]: https://openid.net/specs/openid-connect-core-1_0.html#IDToken
432-
[Kerberos]: https://tools.ietf.org/html/rfc4120
433-
[JavaEE/JakartaEE Servlet]: https://jakarta.ee/specifications/platform/8/apidocs/javax/servlet/http/HttpServletRequest.html
434-
[Windows Communication Foundation]: https://docs.microsoft.com/dotnet/api/system.servicemodel.servicesecuritycontext?view=netframework-4.8
435-
436-
Given the sensitive nature of this information, SDKs and exporters SHOULD drop these attributes by
437-
default and then provide a configuration parameter to turn on retention for use cases where the
438-
information is required and would not violate any policies or regulations.
439-
440383
## General thread attributes
441384

442385
These attributes may be used for any operation to store information about

model/enduser/deprecated/common.yaml

-12
This file was deleted.

model/enduser/deprecated/registry-deprecated.yaml

+3-9
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,17 @@ groups:
22
- id: registry.enduser.deprecated
33
type: attribute_group
44
display_name: Deprecated End User Attributes
5-
brief: Describes deprecated enduser attributes. Complete enduser namespace has been deprecated
5+
brief: "Describes deprecated enduser attributes."
66
attributes:
7-
- id: enduser.id
8-
type: string
9-
stability: experimental
10-
deprecated: Replaced by `user.id` attribute.
11-
brief: "Deprecated, use `user.id` instead."
12-
examples: 'username'
137
- id: enduser.role
148
type: string
9+
deprecated: "Replaced by `user.roles` attribute."
1510
stability: experimental
16-
deprecated: Replaced by `user.roles` attribute.
1711
brief: "Deprecated, use `user.roles` instead."
1812
examples: 'admin'
1913
- id: enduser.scope
2014
type: string
15+
deprecated: "Removed."
2116
stability: experimental
22-
deprecated: Removed.
2317
brief: "Deprecated, no replacement at this time."
2418
examples: 'read:message, write:files'

model/enduser/registry.yaml

+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
groups:
2+
- id: registry.enduser
3+
type: attribute_group
4+
display_name: End User Attributes
5+
brief: >
6+
Describes the end user.
7+
attributes:
8+
- id: enduser.id
9+
type: string
10+
brief: "Unique identifier of an end user in the system. It maybe a username, email address, or other identifier."
11+
note: |
12+
Unique identifier of an end user in the system.
13+
14+
> [!Warning]
15+
> This field contains sensitive (PII) information.
16+
examples: [ 'username' ]
17+
stability: development
18+
- id: enduser.pseudo.id
19+
type: string
20+
stability: development
21+
brief: >
22+
Pseudonymous identifier of an end user. This identifier should be a random value that is not directly linked or associated with the end user's actual identity.
23+
note: |
24+
Pseudonymous identifier of an end user.
25+
26+
> [!Warning]
27+
> This field contains sensitive (linkable PII) information.
28+
examples: ['QdH5CAWJgqVT4rOr0qtumf']

0 commit comments

Comments
 (0)