Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update enduser domain and add enduser.pseudo.id #1456

Merged
merged 56 commits into from
Feb 3, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
3e1655f
Add authentication to enduser namespace
heyams Oct 7, 2024
6f858a2
Fix yamllint
heyams Oct 7, 2024
07cb1eb
Fix weaver
heyams Oct 7, 2024
ee0970f
Update markdowns
heyams Oct 7, 2024
38d8687
Generate gh issue
heyams Oct 7, 2024
b1cdc13
Fix policies-check and compatibility
heyams Oct 7, 2024
068a822
Update
heyams Oct 22, 2024
e05d7a3
Merge branch 'main' into heya/add-enduser-namespace
heyams Oct 22, 2024
c17bec6
Update changelog
heyams Oct 22, 2024
0fa3ffc
Merge branch 'heya/add-enduser-namespace' of https://github.com/heyam…
heyams Oct 22, 2024
d0e26d5
Update
heyams Oct 22, 2024
614a52e
Fix yamllint
heyams Oct 22, 2024
a499237
Fix
heyams Oct 22, 2024
5bfbfe2
Fix trailing spaces
heyams Oct 22, 2024
5f883d0
Use 'make generate-gh-issue-tempaltes
heyams Oct 23, 2024
13919ed
Update
heyams Nov 22, 2024
272ded3
Merge remote-tracking branch 'upstream/main' into heya/add-enduser-na…
heyams Nov 22, 2024
5c0d6d3
Update
heyams Nov 22, 2024
ff85999
Fix identity not found
heyams Nov 22, 2024
d626e6c
Update
heyams Nov 22, 2024
cb32498
Fix yamllint
heyams Nov 22, 2024
1c53711
Fix backward compat
heyams Nov 22, 2024
51d0c99
Rename enduser.id to enduser.pseudo.id
heyams Dec 10, 2024
5d10c08
Merge remote-tracking branch 'upstream/main' into heya/add-enduser-na…
heyams Dec 10, 2024
949bae8
Update md
heyams Dec 10, 2024
9778890
Update
heyams Dec 10, 2024
23bb6fe
Update attributes.md
heyams Jan 13, 2025
f0623df
Address comments
heyams Jan 13, 2025
435fc1b
Make update
heyams Jan 13, 2025
ca87ccc
Fix yamllint
heyams Jan 13, 2025
2b09f28
Merge remote-tracking branch 'upstream/main' into heya/add-enduser-na…
heyams Jan 23, 2025
2ccbfe3
Update
heyams Jan 23, 2025
10b2e0c
Fix yamllint
heyams Jan 24, 2025
8c89be8
Address comments
heyams Jan 24, 2025
a96ebb3
Update
heyams Jan 24, 2025
e076c4e
Update
heyams Jan 24, 2025
33decae
Merge remote-tracking branch 'upstream/main' into heya/add-enduser-na…
heyams Jan 24, 2025
a5a9229
Comment
heyams Jan 24, 2025
109cf5f
Comment
heyams Jan 24, 2025
e2acca0
Revert a newline as it was introduced during merging conflicts
heyams Jan 24, 2025
27753b3
Address comments
heyams Jan 28, 2025
01b9ac8
Update make
heyams Jan 28, 2025
3266909
Fix warning notes
heyams Jan 29, 2025
ac1de4d
Fix areas-dropdown
heyams Jan 29, 2025
018e8bd
Fix yamllint
heyams Jan 29, 2025
5448e29
Merge branch 'main' into heya/add-enduser-namespace
heyams Jan 29, 2025
f6de459
Fix warning rendering
heyams Jan 29, 2025
2eb1c20
Merge branch 'heya/add-enduser-namespace' of https://github.com/heyam…
heyams Jan 29, 2025
51b018f
Update
heyams Jan 31, 2025
9f16bab
Remove
heyams Jan 31, 2025
3a6f26b
Revert deprecated message for enduser.role
heyams Jan 31, 2025
f06b008
Remove 'general identity attributes'
heyams Jan 31, 2025
894b9b2
Fix markdownlint
heyams Jan 31, 2025
71b1f68
Delete enduser/common.yaml
heyams Jan 31, 2025
de64730
Comments
heyams Feb 3, 2025
19ba4d2
Merge branch 'main' into heya/add-enduser-namespace
lmolkova Feb 3, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 23 additions & 0 deletions .chloggen/add_enduser_pseudo_id.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# 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: enduser

# A brief description of the change. Surround your text with quotes ("") if it needs to start with a backtick (`).
note: Undeprecate 'enduser.id' and introduce new attribute `enduser.pseudo.id`

# 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: [1104]

# (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: |
The new attribute `enduser.pseudo.id` is intended to provide a unique identifier of a pseudonymous enduser.
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ body:
- area:dns
- area:dotnet
- area:elasticsearch
- area:enduser
- area:error
- area:exception
- area:faas
Expand Down
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/change_proposal.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ body:
- area:dns
- area:dotnet
- area:elasticsearch
- area:enduser
- area:error
- area:exception
- area:faas
Expand Down
25 changes: 23 additions & 2 deletions docs/attributes-registry/enduser.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,33 @@

# Enduser

- [End User Attributes](#end-user-attributes)
- [Deprecated End User Attributes](#deprecated-end-user-attributes)

## End User Attributes

Describes the end user.

| Attribute | Type | Description | Examples | Stability |
|---|---|---|---|---|
| <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) |
| <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) |

**[1] `enduser.id`:** Unique identifier of an end user in the system.

> [!Warning]
> This field contains sensitive (PII) information.

**[2] `enduser.pseudo.id`:** Pseudonymous identifier of an end user.

> [!Warning]
> This field contains sensitive (linkable PII) information.

## Deprecated End User Attributes

Describes deprecated enduser attributes. Complete enduser namespace has been deprecated
Describes deprecated enduser attributes.

| Attribute | Type | Description | Examples | Stability |
|---|---|---|---|---|
| <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. |
| <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. |
| <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. |
57 changes: 0 additions & 57 deletions docs/general/attributes.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ Particular operations may refer to or require some of these attributes.
- [Client/server example with forward proxy](#clientserver-example-with-forward-proxy)
- [Network connection and carrier attributes](#network-connection-and-carrier-attributes)
- [General remote service attributes](#general-remote-service-attributes)
- [General identity attributes](#general-identity-attributes)
- [General thread attributes](#general-thread-attributes)
- [Source Code Attributes](#source-code-attributes)

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

## General identity attributes

These attributes may be used for any operation with an authenticated and/or authorized enduser.

<!-- semconv identity -->
<!-- NOTE: THIS TEXT IS AUTOGENERATED. DO NOT EDIT BY HAND. -->
<!-- see templates/registry/markdown/snippet.md.j2 -->
<!-- prettier-ignore-start -->
<!-- markdownlint-capture -->
<!-- markdownlint-disable -->

| Attribute | Type | Description | Examples | [Requirement Level](https://opentelemetry.io/docs/specs/semconv/general/attribute-requirement-level/) | Stability |
|---|---|---|---|---|---|
| [`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. |
| [`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. |
| [`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. |

<!-- markdownlint-restore -->
<!-- prettier-ignore-end -->
<!-- END AUTOGENERATED TEXT -->
<!-- endsemconv -->

These attributes describe the authenticated user driving the user agent making requests to the instrumented
system. It is expected this information would be propagated unchanged from node-to-node within the system
using the Baggage mechanism. These attributes should not be used to record system-to-system
authentication attributes.
trask marked this conversation as resolved.
Show resolved Hide resolved

Examples of where the `enduser.id` value is extracted from:

| Authentication protocol | Field or description |
heyams marked this conversation as resolved.
Show resolved Hide resolved
| :---------------------- | :------------------------------ |
| [HTTP Basic/Digest Authentication] | `username` |
| [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. |
| [OpenID Connect 1.0 IDToken] | `sub` |
| [SAML 2.0 Assertion] | `urn:oasis:names:tc:SAML:2.0:assertion:Subject` |
| [Kerberos] | `PrincipalName` |

| Framework | Field or description |
| :---------------------- | :------------------------------ |
| [JavaEE/JakartaEE Servlet] | `javax.servlet.http.HttpServletRequest.getUserPrincipal()` |
| [Windows Communication Foundation] | `ServiceSecurityContext.Current.PrimaryIdentity` |

[SAML 2.0 Assertion]: http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html
[HTTP Basic/Digest Authentication]: https://tools.ietf.org/html/rfc2617
[OAuth 2.0 Bearer Token]: https://tools.ietf.org/html/rfc6750
[OAuth 2.0 Client Identifier]: https://tools.ietf.org/html/rfc6749#section-2.2
[OAuth 2.0 Client Credentials Grant]: https://tools.ietf.org/html/rfc6749#section-4.4
[OpenID Connect 1.0 IDToken]: https://openid.net/specs/openid-connect-core-1_0.html#IDToken
[Kerberos]: https://tools.ietf.org/html/rfc4120
[JavaEE/JakartaEE Servlet]: https://jakarta.ee/specifications/platform/8/apidocs/javax/servlet/http/HttpServletRequest.html
[Windows Communication Foundation]: https://docs.microsoft.com/dotnet/api/system.servicemodel.servicesecuritycontext?view=netframework-4.8

Given the sensitive nature of this information, SDKs and exporters SHOULD drop these attributes by
default and then provide a configuration parameter to turn on retention for use cases where the
information is required and would not violate any policies or regulations.
trask marked this conversation as resolved.
Show resolved Hide resolved

## General thread attributes

These attributes may be used for any operation to store information about
Expand Down
12 changes: 0 additions & 12 deletions model/enduser/deprecated/common.yaml

This file was deleted.

12 changes: 3 additions & 9 deletions model/enduser/deprecated/registry-deprecated.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,17 @@ groups:
- id: registry.enduser.deprecated
type: attribute_group
display_name: Deprecated End User Attributes
brief: Describes deprecated enduser attributes. Complete enduser namespace has been deprecated
brief: "Describes deprecated enduser attributes."
attributes:
- id: enduser.id
type: string
stability: experimental
deprecated: Replaced by `user.id` attribute.
brief: "Deprecated, use `user.id` instead."
examples: 'username'
- id: enduser.role
type: string
deprecated: "Replaced by `user.roles` attribute."
stability: experimental
deprecated: Replaced by `user.roles` attribute.
brief: "Deprecated, use `user.roles` instead."
examples: 'admin'
- id: enduser.scope
type: string
deprecated: "Removed."
stability: experimental
deprecated: Removed.
brief: "Deprecated, no replacement at this time."
examples: 'read:message, write:files'
28 changes: 28 additions & 0 deletions model/enduser/registry.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
groups:
- id: registry.enduser
type: attribute_group
display_name: End User Attributes
brief: >
Describes the end user.
attributes:
- id: enduser.id
heyams marked this conversation as resolved.
Show resolved Hide resolved
type: string
brief: "Unique identifier of an end user in the system. It maybe a username, email address, or other identifier."
note: |
Unique identifier of an end user in the system.

> [!Warning]
> This field contains sensitive (PII) information.
examples: [ 'username' ]
heyams marked this conversation as resolved.
Show resolved Hide resolved
stability: development
- id: enduser.pseudo.id
type: string
stability: development
brief: >
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.
note: |
Pseudonymous identifier of an end user.

> [!Warning]
> This field contains sensitive (linkable PII) information.
examples: ['QdH5CAWJgqVT4rOr0qtumf']
heyams marked this conversation as resolved.
Show resolved Hide resolved
Loading