Skip to content

Refine key normalization for Environment Variables Context Propagation Carrier #4914

@pellared

Description

@pellared

What are you trying to achieve?

Define the "key normalization" in Environment Variables as Context Propagation Carriers

Reason POSIX Standards:

Environment variable names used by the utilities in the Shell and Utilities volume of POSIX.1-2024 consist solely of uppercase letters, digits, and the ('_') from the characters defined in Portable Character Set and do not begin with a digit.

The normalization would be

  • Replace all leading [0-9] with _ Add _ in front if the first character is a [0-9] digit (digits cannot be leading)
  • Leave [A-Z][0-9]_
  • Make [a-z] uppercase
  • Replace all other characters with _

This way the env var carrier will work with all w3c propagators as well b3 propagator and possibly any other propagator unless it uses some strange characters that would lead into collision after normalization.

Related to #740

Prior art:

Additional context.

I am also not sure if anyone is implementing this as a propagator wrapper (and not carrier).

Tip: React with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding +1 or me too, to help us triage it. Learn more here.

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestsig-issueA specific SIG should look into this before discussing at the specspec:contextRelated to the specification/context directory

Type

No type

Projects

Status

Done

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions