-
Notifications
You must be signed in to change notification settings - Fork 195
Description
Preflight Checklist
- I could not find a solution in the existing issues, docs, nor discussions
- I have joined the ZITADEL chat
Describe your problem
Problem
Hello, we want to use this library in a large financial institution. Tracing is enabled too aggressively inside github.com/zitadel/oidc/v3/pkg/op, but unlike the pkg/client package, the tracer there is a private variable.
Because of this, we cannot override or disable tracing without using unsafe hacks (go:linkname), which is not acceptable for production in regulated environments.
Example:
- In github.com/zitadel/oidc/v3/pkg/client, the tracer is public and can be replaced.
- In github.com/zitadel/oidc/v3/pkg/op, the tracer is private, so there is no official way to disable or customize it.
Why this is a problem
Many companies (banks, enterprise, government) have strict policies about:
Disabling unnecessary tracing
Controlling telemetry centrally
Avoiding unsafe code and fork maintenance
Right now, the only way to disable tracing inside pkg/op is to patch it manually or use unsafe.
Describe your ideal solution
Suggested solution
Any of the following would solve the issue cleanly:
Option 1 (preferred)
Make the tracer exported:
var Tracer = ...
Option 2
Expose a function:
func SetTracer(trace.Tracer)
Option 3
Expose a function to configure or disable tracing:
func DisableTracing()
// or
func ConfigureTracing(provider trace.TracerProvider)
Why this change is useful
Keeps API backward-compatible
Removes the need for unsafe or custom forks
Makes behavior consistent with pkg/client
Allows regulated environments to integrate safely
Version
v3.45.0
Environment
Self-hosted
Additional Context
No response
Metadata
Metadata
Assignees
Labels
Type
Projects
Status