zitadel
Team
zitadel/zitadel
Sign in / Sign up
Open main menu
zitadel/zitadel
GitHub
Overview
Runs
Analytics
Loading workspace stats
Loading workspace insights...
Statistics interval
7 days
30 days
Latest CI Pipeline Executions
Status
Fix filter
Filter
Fuzzy
Filter range
Sort by
Sort by
Start time
Sort ascending
Sort descending
Failed
feat-consistent-flags
e844bf93 test: remove unneeded GetInstanceFeature calls
13 days ago
by Tim Möhlmann
T
Succeeded
feat-consistent-flags
e844bf93 Merge 672e4bc9f3531192b035f8220607e904000abc91 into 4bc899d052059f15c6a69fce0b25ecd85da38074
13 days ago
by Tim Möhlmann
T
Succeeded
main
997aa607 feat(telemetry): unify request details (#11509) # Which Problems Are Solved In the "new" structured logging, request details were added in different middlewares, such as request, instance and user IDs. This meant the the upstream request logging middleware did not have access to metadata that got added later, resulting in incomplete logs. Furthermore it was not possible to correlate an API error response to log output. # How the Problems Are Solved A mutable request details object is added to the context early on. When the api authz function run, the instance and user IDs are added to this object as they become available. Every logline emitted after this (time-wise) will then all contain these details under the `request` log group. <details> <summary>example output in JSON</summary> ```json { "time": "2026-03-13T19:21:20.890428806Z", "level": "INFO", "source": { "function": "github.com/zitadel/zitadel/internal/api/grpc/server/connect_middleware.LogHandler.func1.1", "file": "/workspaces/zitadel/internal/api/grpc/server/connect_middleware/log_interceptor.go", "line": 34 }, "msg": "request served", "request": { "id": "d6q67c04vtjmi77cbbpg", "instance_host": "localhost:8080", "instance_id": "362349751439458307", "user_id": "362349751440048131" }, "TraceID": "a9e0fee3522224f3583bbdcda737f4b4", "SpanID": "a563056eee36920a", "stream": "request", "version": "2026-03-13T19:20:59Z", "protocol": "connect", "service": "zitadel.user.v2.UserService", "http_method": "POST", "path": "/zitadel.user.v2.UserService/ListUsers", "code": "code_0", "duration": 12254350 } ``` </details> Request IDs are now also returned with a response header or metadata. Depending on the protocol: - HTTP calls always return the request ID as header, regardless of status - gRPC calls always return the request ID as header, even if there was an error - connect RPC calls returns the request ID as header on success, trailer in case of error. This is because header must be set on the response object, which is nil in case of error. When there is an error, metadata can be added which are then sent as trailers. # Additional Changes - Use the existing call duration middleware for both request ID and logging for a consistent request start timestamp in all layers. - Upgrade sloggcp for some fixes (notably TraceID) - Modify the NoCache middleware so it uses `SetHeaders` instead of `SendHeaders`. The latter prevented any other handler from setting headers, including the new request ID middleware. # Additional Context Follow up on demo of: - https://github.com/zitadel/zitadel/pull/11159 - https://github.com/zitadel/zitadel/pull/11435 - backport to v4 --------- Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: muhlemmer <5411563+muhlemmer@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Marco A. <marco@zitadel.com>
18 days ago
by Tim Möhlmann
T
Succeeded
main
997aa607 feat(telemetry): unify request details (#11509) # Which Problems Are Solved In the "new" structured logging, request details were added in different middlewares, such as request, instance and user IDs. This meant the the upstream request logging middleware did not have access to metadata that got added later, resulting in incomplete logs. Furthermore it was not possible to correlate an API error response to log output. # How the Problems Are Solved A mutable request details object is added to the context early on. When the api authz function run, the instance and user IDs are added to this object as they become available. Every logline emitted after this (time-wise) will then all contain these details under the `request` log group. <details> <summary>example output in JSON</summary> ```json { "time": "2026-03-13T19:21:20.890428806Z", "level": "INFO", "source": { "function": "github.com/zitadel/zitadel/internal/api/grpc/server/connect_middleware.LogHandler.func1.1", "file": "/workspaces/zitadel/internal/api/grpc/server/connect_middleware/log_interceptor.go", "line": 34 }, "msg": "request served", "request": { "id": "d6q67c04vtjmi77cbbpg", "instance_host": "localhost:8080", "instance_id": "362349751439458307", "user_id": "362349751440048131" }, "TraceID": "a9e0fee3522224f3583bbdcda737f4b4", "SpanID": "a563056eee36920a", "stream": "request", "version": "2026-03-13T19:20:59Z", "protocol": "connect", "service": "zitadel.user.v2.UserService", "http_method": "POST", "path": "/zitadel.user.v2.UserService/ListUsers", "code": "code_0", "duration": 12254350 } ``` </details> Request IDs are now also returned with a response header or metadata. Depending on the protocol: - HTTP calls always return the request ID as header, regardless of status - gRPC calls always return the request ID as header, even if there was an error - connect RPC calls returns the request ID as header on success, trailer in case of error. This is because header must be set on the response object, which is nil in case of error. When there is an error, metadata can be added which are then sent as trailers. # Additional Changes - Use the existing call duration middleware for both request ID and logging for a consistent request start timestamp in all layers. - Upgrade sloggcp for some fixes (notably TraceID) - Modify the NoCache middleware so it uses `SetHeaders` instead of `SendHeaders`. The latter prevented any other handler from setting headers, including the new request ID middleware. # Additional Context Follow up on demo of: - https://github.com/zitadel/zitadel/pull/11159 - https://github.com/zitadel/zitadel/pull/11435 - backport to v4 --------- Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: muhlemmer <5411563+muhlemmer@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Marco A. <marco@zitadel.com>
18 days ago
by Tim Möhlmann
T
Succeeded
main
997aa607 feat(telemetry): unify request details (#11509) # Which Problems Are Solved In the "new" structured logging, request details were added in different middlewares, such as request, instance and user IDs. This meant the the upstream request logging middleware did not have access to metadata that got added later, resulting in incomplete logs. Furthermore it was not possible to correlate an API error response to log output. # How the Problems Are Solved A mutable request details object is added to the context early on. When the api authz function run, the instance and user IDs are added to this object as they become available. Every logline emitted after this (time-wise) will then all contain these details under the `request` log group. <details> <summary>example output in JSON</summary> ```json { "time": "2026-03-13T19:21:20.890428806Z", "level": "INFO", "source": { "function": "github.com/zitadel/zitadel/internal/api/grpc/server/connect_middleware.LogHandler.func1.1", "file": "/workspaces/zitadel/internal/api/grpc/server/connect_middleware/log_interceptor.go", "line": 34 }, "msg": "request served", "request": { "id": "d6q67c04vtjmi77cbbpg", "instance_host": "localhost:8080", "instance_id": "362349751439458307", "user_id": "362349751440048131" }, "TraceID": "a9e0fee3522224f3583bbdcda737f4b4", "SpanID": "a563056eee36920a", "stream": "request", "version": "2026-03-13T19:20:59Z", "protocol": "connect", "service": "zitadel.user.v2.UserService", "http_method": "POST", "path": "/zitadel.user.v2.UserService/ListUsers", "code": "code_0", "duration": 12254350 } ``` </details> Request IDs are now also returned with a response header or metadata. Depending on the protocol: - HTTP calls always return the request ID as header, regardless of status - gRPC calls always return the request ID as header, even if there was an error - connect RPC calls returns the request ID as header on success, trailer in case of error. This is because header must be set on the response object, which is nil in case of error. When there is an error, metadata can be added which are then sent as trailers. # Additional Changes - Use the existing call duration middleware for both request ID and logging for a consistent request start timestamp in all layers. - Upgrade sloggcp for some fixes (notably TraceID) - Modify the NoCache middleware so it uses `SetHeaders` instead of `SendHeaders`. The latter prevented any other handler from setting headers, including the new request ID middleware. # Additional Context Follow up on demo of: - https://github.com/zitadel/zitadel/pull/11159 - https://github.com/zitadel/zitadel/pull/11435 - backport to v4 --------- Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: muhlemmer <5411563+muhlemmer@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Marco A. <marco@zitadel.com>
18 days ago
by Tim Möhlmann
T
Succeeded
fix/no-smtp-double-create
767ac79f feat(telemetry): unify request details (#11509) # Which Problems Are Solved In the "new" structured logging, request details were added in different middlewares, such as request, instance and user IDs. This meant the the upstream request logging middleware did not have access to metadata that got added later, resulting in incomplete logs. Furthermore it was not possible to correlate an API error response to log output. # How the Problems Are Solved A mutable request details object is added to the context early on. When the api authz function run, the instance and user IDs are added to this object as they become available. Every logline emitted after this (time-wise) will then all contain these details under the `request` log group. <details> <summary>example output in JSON</summary> ```json { "time": "2026-03-13T19:21:20.890428806Z", "level": "INFO", "source": { "function": "github.com/zitadel/zitadel/internal/api/grpc/server/connect_middleware.LogHandler.func1.1", "file": "/workspaces/zitadel/internal/api/grpc/server/connect_middleware/log_interceptor.go", "line": 34 }, "msg": "request served", "request": { "id": "d6q67c04vtjmi77cbbpg", "instance_host": "localhost:8080", "instance_id": "362349751439458307", "user_id": "362349751440048131" }, "TraceID": "a9e0fee3522224f3583bbdcda737f4b4", "SpanID": "a563056eee36920a", "stream": "request", "version": "2026-03-13T19:20:59Z", "protocol": "connect", "service": "zitadel.user.v2.UserService", "http_method": "POST", "path": "/zitadel.user.v2.UserService/ListUsers", "code": "code_0", "duration": 12254350 } ``` </details> Request IDs are now also returned with a response header or metadata. Depending on the protocol: - HTTP calls always return the request ID as header, regardless of status - gRPC calls always return the request ID as header, even if there was an error - connect RPC calls returns the request ID as header on success, trailer in case of error. This is because header must be set on the response object, which is nil in case of error. When there is an error, metadata can be added which are then sent as trailers. # Additional Changes - Use the existing call duration middleware for both request ID and logging for a consistent request start timestamp in all layers. - Upgrade sloggcp for some fixes (notably TraceID) - Modify the NoCache middleware so it uses `SetHeaders` instead of `SendHeaders`. The latter prevented any other handler from setting headers, including the new request ID middleware. # Additional Context Follow up on demo of: - https://github.com/zitadel/zitadel/pull/11159 - https://github.com/zitadel/zitadel/pull/11435 - backport to v4 --------- Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: muhlemmer <5411563+muhlemmer@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Marco A. <marco@zitadel.com>
18 days ago
by Tim Möhlmann
T
Succeeded
fix/console-rm-role-assignment-in-profile
103b04e4 feat(telemetry): unify request details (#11509) # Which Problems Are Solved In the "new" structured logging, request details were added in different middlewares, such as request, instance and user IDs. This meant the the upstream request logging middleware did not have access to metadata that got added later, resulting in incomplete logs. Furthermore it was not possible to correlate an API error response to log output. # How the Problems Are Solved A mutable request details object is added to the context early on. When the api authz function run, the instance and user IDs are added to this object as they become available. Every logline emitted after this (time-wise) will then all contain these details under the `request` log group. <details> <summary>example output in JSON</summary> ```json { "time": "2026-03-13T19:21:20.890428806Z", "level": "INFO", "source": { "function": "github.com/zitadel/zitadel/internal/api/grpc/server/connect_middleware.LogHandler.func1.1", "file": "/workspaces/zitadel/internal/api/grpc/server/connect_middleware/log_interceptor.go", "line": 34 }, "msg": "request served", "request": { "id": "d6q67c04vtjmi77cbbpg", "instance_host": "localhost:8080", "instance_id": "362349751439458307", "user_id": "362349751440048131" }, "TraceID": "a9e0fee3522224f3583bbdcda737f4b4", "SpanID": "a563056eee36920a", "stream": "request", "version": "2026-03-13T19:20:59Z", "protocol": "connect", "service": "zitadel.user.v2.UserService", "http_method": "POST", "path": "/zitadel.user.v2.UserService/ListUsers", "code": "code_0", "duration": 12254350 } ``` </details> Request IDs are now also returned with a response header or metadata. Depending on the protocol: - HTTP calls always return the request ID as header, regardless of status - gRPC calls always return the request ID as header, even if there was an error - connect RPC calls returns the request ID as header on success, trailer in case of error. This is because header must be set on the response object, which is nil in case of error. When there is an error, metadata can be added which are then sent as trailers. # Additional Changes - Use the existing call duration middleware for both request ID and logging for a consistent request start timestamp in all layers. - Upgrade sloggcp for some fixes (notably TraceID) - Modify the NoCache middleware so it uses `SetHeaders` instead of `SendHeaders`. The latter prevented any other handler from setting headers, including the new request ID middleware. # Additional Context Follow up on demo of: - https://github.com/zitadel/zitadel/pull/11159 - https://github.com/zitadel/zitadel/pull/11435 - backport to v4 --------- Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: muhlemmer <5411563+muhlemmer@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Marco A. <marco@zitadel.com>
18 days ago
by Tim Möhlmann
T
Succeeded
main
997aa607 feat(telemetry): unify request details (#11509) # Which Problems Are Solved In the "new" structured logging, request details were added in different middlewares, such as request, instance and user IDs. This meant the the upstream request logging middleware did not have access to metadata that got added later, resulting in incomplete logs. Furthermore it was not possible to correlate an API error response to log output. # How the Problems Are Solved A mutable request details object is added to the context early on. When the api authz function run, the instance and user IDs are added to this object as they become available. Every logline emitted after this (time-wise) will then all contain these details under the `request` log group. <details> <summary>example output in JSON</summary> ```json { "time": "2026-03-13T19:21:20.890428806Z", "level": "INFO", "source": { "function": "github.com/zitadel/zitadel/internal/api/grpc/server/connect_middleware.LogHandler.func1.1", "file": "/workspaces/zitadel/internal/api/grpc/server/connect_middleware/log_interceptor.go", "line": 34 }, "msg": "request served", "request": { "id": "d6q67c04vtjmi77cbbpg", "instance_host": "localhost:8080", "instance_id": "362349751439458307", "user_id": "362349751440048131" }, "TraceID": "a9e0fee3522224f3583bbdcda737f4b4", "SpanID": "a563056eee36920a", "stream": "request", "version": "2026-03-13T19:20:59Z", "protocol": "connect", "service": "zitadel.user.v2.UserService", "http_method": "POST", "path": "/zitadel.user.v2.UserService/ListUsers", "code": "code_0", "duration": 12254350 } ``` </details> Request IDs are now also returned with a response header or metadata. Depending on the protocol: - HTTP calls always return the request ID as header, regardless of status - gRPC calls always return the request ID as header, even if there was an error - connect RPC calls returns the request ID as header on success, trailer in case of error. This is because header must be set on the response object, which is nil in case of error. When there is an error, metadata can be added which are then sent as trailers. # Additional Changes - Use the existing call duration middleware for both request ID and logging for a consistent request start timestamp in all layers. - Upgrade sloggcp for some fixes (notably TraceID) - Modify the NoCache middleware so it uses `SetHeaders` instead of `SendHeaders`. The latter prevented any other handler from setting headers, including the new request ID middleware. # Additional Context Follow up on demo of: - https://github.com/zitadel/zitadel/pull/11159 - https://github.com/zitadel/zitadel/pull/11435 - backport to v4 --------- Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: muhlemmer <5411563+muhlemmer@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Marco A. <marco@zitadel.com>
18 days ago
by Tim Möhlmann
T
Succeeded
main
997aa607 feat(telemetry): unify request details (#11509) # Which Problems Are Solved In the "new" structured logging, request details were added in different middlewares, such as request, instance and user IDs. This meant the the upstream request logging middleware did not have access to metadata that got added later, resulting in incomplete logs. Furthermore it was not possible to correlate an API error response to log output. # How the Problems Are Solved A mutable request details object is added to the context early on. When the api authz function run, the instance and user IDs are added to this object as they become available. Every logline emitted after this (time-wise) will then all contain these details under the `request` log group. <details> <summary>example output in JSON</summary> ```json { "time": "2026-03-13T19:21:20.890428806Z", "level": "INFO", "source": { "function": "github.com/zitadel/zitadel/internal/api/grpc/server/connect_middleware.LogHandler.func1.1", "file": "/workspaces/zitadel/internal/api/grpc/server/connect_middleware/log_interceptor.go", "line": 34 }, "msg": "request served", "request": { "id": "d6q67c04vtjmi77cbbpg", "instance_host": "localhost:8080", "instance_id": "362349751439458307", "user_id": "362349751440048131" }, "TraceID": "a9e0fee3522224f3583bbdcda737f4b4", "SpanID": "a563056eee36920a", "stream": "request", "version": "2026-03-13T19:20:59Z", "protocol": "connect", "service": "zitadel.user.v2.UserService", "http_method": "POST", "path": "/zitadel.user.v2.UserService/ListUsers", "code": "code_0", "duration": 12254350 } ``` </details> Request IDs are now also returned with a response header or metadata. Depending on the protocol: - HTTP calls always return the request ID as header, regardless of status - gRPC calls always return the request ID as header, even if there was an error - connect RPC calls returns the request ID as header on success, trailer in case of error. This is because header must be set on the response object, which is nil in case of error. When there is an error, metadata can be added which are then sent as trailers. # Additional Changes - Use the existing call duration middleware for both request ID and logging for a consistent request start timestamp in all layers. - Upgrade sloggcp for some fixes (notably TraceID) - Modify the NoCache middleware so it uses `SetHeaders` instead of `SendHeaders`. The latter prevented any other handler from setting headers, including the new request ID middleware. # Additional Context Follow up on demo of: - https://github.com/zitadel/zitadel/pull/11159 - https://github.com/zitadel/zitadel/pull/11435 - backport to v4 --------- Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: muhlemmer <5411563+muhlemmer@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> Co-authored-by: Marco A. <marco@zitadel.com>
18 days ago
by Tim Möhlmann
T
Succeeded
feat-request-id
4ab80ef7 kick semantic PR
18 days ago
by Tim Möhlmann
T
Succeeded
feat-request-id
4ab80ef7 Merge 0a9282f0cb0ca476af44bc37ea5bee5fe0ba4623 into f138082b64513955466e8dddc8de2a5a1e4e6c8e
18 days ago
by Tim Möhlmann
T
Succeeded
feat-request-id
d93a718f fix: verify type assertion in test
18 days ago
by Tim Möhlmann
T
Succeeded
feat-request-id
c91e9432 fix: verify type assertion in test
18 days ago
by Tim Möhlmann
T
Succeeded
feat-request-id
c91e9432 Merge d93a718fd2d65acdd72f668402d4c11089734a71 into f138082b64513955466e8dddc8de2a5a1e4e6c8e
18 days ago
by Tim Möhlmann
T
Succeeded
feat-request-id
486b0ed8 Merge 9c0998e3618ac7f79c81407260e02814329f35ac into f138082b64513955466e8dddc8de2a5a1e4e6c8e
18 days ago
by Tim Möhlmann
T
Succeeded
docs-helm-improve
a6b453be fix(telemetry): count IDP template data (#11720) # Which Problems Are Solved The total number of configured IDPs seemed of. We were counting only the IDP table for non-templated IDPs. # How the Problems Are Solved Add a count trigger migration for the IDP template table. Entries will be counted under the existing `ResourceCountIdentityProvider` # Additional Changes - none # Additional Context - Reported internally - Implemented in #9979 - Related https://github.com/zitadel/zitadel/issues/9957 Co-authored-by: Livio Spring <livio.a@gmail.com>
19 days ago
by Tim Möhlmann
T
Succeeded
feat-request-id
047233bc fix: unit tests
19 days ago
by Tim Möhlmann
T
Succeeded
feat-request-id
047233bc Merge f389ada72c6b6b6b5f21ab133b5ab6f3f2d0a775 into 921414fa164138955a8233a4844ddd4c11c7a28e
19 days ago
by Tim Möhlmann
T
Succeeded
feat-request-id
f40ddeab fix: unit tests
19 days ago
by Tim Möhlmann
T
Succeeded
feat-request-id
f40ddeab Merge f29d0e530b6c6ceb823be6e26088bb3401b55576 into 921414fa164138955a8233a4844ddd4c11c7a28e
19 days ago
by Tim Möhlmann
T
Previous page
Previous
Next
Next page