{"level":"info","timestamp":"2026-06-09T14:25:41.663Z","caller":"cmd/main.go:65","message":"Loading database connection URL from secret..."} {"level":"info","timestamp":"2026-06-09T14:25:41.681Z","caller":"cmd/main.go:172","message":"Connecting to PostgreSQL database..."} {"level":"info","timestamp":"2026-06-09T14:25:41.681Z","caller":"cmd/main.go:101","message":"Metrics server starting","address":":9090"} {"level":"info","timestamp":"2026-06-09T14:25:41.824Z","caller":"api_keys/db_driver.go:90","message":"Database schema applied","version":4} {"level":"info","timestamp":"2026-06-09T14:25:41.824Z","caller":"api_keys/db_driver.go:57","message":"Connected to PostgreSQL database (schema applied)"} {"level":"info","timestamp":"2026-06-09T14:25:41.929Z","caller":"cmd/main.go:193","message":"Resolved gateway internal host for access probes","host":"maas-default-gateway-openshift-default.openshift-ingress.svc.cluster.local"} {"level":"info","timestamp":"2026-06-09T14:25:41.961Z","caller":"cmd/main.go:134","message":"Server starting","address":":8443","secure":true} [GIN] 2026/06/09 - 14:25:48 | 200 | 62.303µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:25:53 | 200 | 42.879µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:25:58 | 200 | 32.455µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:26:03 | 200 | 48.715µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:26:08 | 200 | 35.116µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:26:13 | 200 | 38.976µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:26:18 | 200 | 32.422µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:26:18 | 200 | 33.372µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:26:23 | 200 | 36.192µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:26:28 | 200 | 34.994µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:26:28 | 200 | 35.643µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:26:33 | 200 | 34.673µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:26:38 | 200 | 35.729µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:26:38 | 200 | 32.758µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:26:43 | 200 | 35.989µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:26:48 | 200 | 34.662µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:26:48 | 200 | 33.725µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:26:53 | 200 | 44.491µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:26:58 | 200 | 34.281µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:26:58 | 200 | 33.364µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:27:03 | 200 | 58.978µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:27:08 | 200 | 40.022µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:27:08 | 200 | 36.54µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:27:13 | 200 | 44.254µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:27:18 | 200 | 35.432µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:27:18 | 200 | 32.709µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:27:23 | 200 | 42.44µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:27:28 | 200 | 45.156µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:27:28 | 200 | 33.748µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:27:33 | 200 | 41.419µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:27:38 | 200 | 40.489µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:27:38 | 200 | 37.798µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:27:43 | 200 | 48.211µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:27:48 | 200 | 43.115µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:27:48 | 200 | 35.394µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:27:53 | 200 | 38.089µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:27:58 | 200 | 37.716µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:27:58 | 200 | 40.477µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:28:03 | 200 | 41.242µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:28:08 | 200 | 39.773µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:28:08 | 200 | 40.45µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:28:13 | 200 | 40.277µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:28:18 | 200 | 39.237µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:28:18 | 200 | 40.354µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:28:23 | 200 | 46.601µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:28:28 | 200 | 40.823µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:28:28 | 200 | 37.629µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:28:33 | 200 | 44.876µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:28:38 | 200 | 41.103µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:28:38 | 200 | 43.409µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:28:43 | 200 | 58.561µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:28:48 | 200 | 58.789µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:28:48 | 200 | 46.126µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:28:53 | 200 | 38.183µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:28:58 | 200 | 43.487µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:28:58 | 200 | 42.067µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:29:03 | 200 | 41.908µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:29:08 | 200 | 39.031µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:29:08 | 200 | 38.657µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:29:13 | 200 | 44.832µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:29:18 | 200 | 40.31µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:29:18 | 200 | 38.152µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:29:23 | 200 | 41.755µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:29:28 | 200 | 43.526µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:29:28 | 200 | 41.9µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:29:33 | 200 | 39.245µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:29:38 | 200 | 38.251µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:29:38 | 200 | 32.078µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:29:43 | 200 | 33.562µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:29:48 | 200 | 33.318µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:29:48 | 200 | 35.092µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:29:53 | 200 | 35.329µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:29:58 | 200 | 34.291µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:29:58 | 200 | 32.316µs | 10.134.0.2 | GET "/health" {"level":"info","timestamp":"2026-06-09T14:30:03.444Z","caller":"api_keys/service.go:305","message":"Ephemeral key cleanup completed","deletedCount":0} [GIN] 2026/06/09 - 14:30:03 | 200 | 9.541463ms | 10.133.0.33 | POST "/internal/v1/api-keys/cleanup" [GIN] 2026/06/09 - 14:30:03 | 200 | 43.154µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:30:08 | 200 | 33.019µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:30:08 | 200 | 38.616µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:30:13 | 200 | 54.443µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:30:18 | 200 | 35.401µs | 10.134.0.2 | GET "/health" {"level":"info","timestamp":"2026-06-09T14:30:18.523Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:maas-admin:tester-admin-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:maas-admin","system:authenticated"],"id":"294695b6-a2e2-43d5-8627-a2a57a5770d9","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:18.523Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"294695b6-a2e2-43d5-8627-a2a57a5770d9","keyPrefix":"sk-oai-QV9FY7ps8aH2...","username":"system:serviceaccount:maas-admin:tester-admin-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:maas-admin","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:18 | 201 | 2.734636ms | 100.64.0.2 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:30:18 | 200 | 782.277µs | 10.132.0.47 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 14:30:18 | 200 | 402.843µs | 10.132.0.47 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 14:30:18 | 200 | 223.8µs | 10.132.0.47 | POST "/internal/v1/subscriptions/select" [GIN] 2026/06/09 - 14:30:18 | 200 | 30.801017ms | 100.64.0.3 | GET "/v1/models" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:30:18 | 200 | 435.334µs | 10.132.0.47 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 14:30:18 | 200 | 117.294µs | 10.132.0.47 | POST "/internal/v1/subscriptions/select" [GIN] 2026/06/09 - 14:30:18 | 200 | 409.928µs | 10.132.0.47 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 14:30:18 | 200 | 107.403µs | 10.132.0.47 | POST "/internal/v1/subscriptions/select" [GIN] 2026/06/09 - 14:30:18 | 200 | 410.301µs | 10.132.0.47 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 14:30:18 | 200 | 140.084µs | 10.132.0.47 | POST "/internal/v1/subscriptions/select" [GIN] 2026/06/09 - 14:30:18 | 200 | 406.157µs | 10.132.0.47 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 14:30:18 | 200 | 170.997µs | 10.132.0.47 | POST "/internal/v1/subscriptions/select" [GIN] 2026/06/09 - 14:30:18 | 200 | 343.294µs | 10.132.0.47 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 14:30:18 | 200 | 116.235µs | 10.132.0.47 | POST "/internal/v1/subscriptions/select" [GIN] 2026/06/09 - 14:30:18 | 200 | 315.631µs | 10.132.0.47 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 14:30:18 | 200 | 127.215µs | 10.132.0.47 | POST "/internal/v1/subscriptions/select" [GIN] 2026/06/09 - 14:30:18 | 200 | 317.338µs | 10.132.0.47 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 14:30:18 | 200 | 118.515µs | 10.132.0.47 | POST "/internal/v1/subscriptions/select" [GIN] 2026/06/09 - 14:30:18 | 200 | 23.431µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:30:18 | 200 | 407.646µs | 10.132.0.47 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 14:30:18 | 200 | 121.543µs | 10.132.0.47 | POST "/internal/v1/subscriptions/select" [GIN] 2026/06/09 - 14:30:19 | 200 | 379.313µs | 10.132.0.47 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 14:30:19 | 200 | 112.435µs | 10.132.0.47 | POST "/internal/v1/subscriptions/select" [GIN] 2026/06/09 - 14:30:19 | 200 | 388.338µs | 10.132.0.47 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 14:30:19 | 200 | 128.069µs | 10.132.0.47 | POST "/internal/v1/subscriptions/select" [GIN] 2026/06/09 - 14:30:19 | 200 | 362.954µs | 10.132.0.47 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 14:30:19 | 200 | 129.634µs | 10.132.0.47 | POST "/internal/v1/subscriptions/select" {"level":"info","timestamp":"2026-06-09T14:30:19.166Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"294695b6-a2e2-43d5-8627-a2a57a5770d9"} {"level":"info","timestamp":"2026-06-09T14:30:19.166Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"294695b6-a2e2-43d5-8627-a2a57a5770d9","revokedBy":"system:serviceaccount:maas-admin:tester-admin-user"} [GIN] 2026/06/09 - 14:30:19 | 200 | 2.500832ms | 100.64.0.2 | DELETE "/v1/api-keys/294695b6-a2e2-43d5-8627-a2a57a5770d9" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:30:23 | 200 | 35.31µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:30:26 | 200 | 19.069µs | 100.64.0.2 | GET "/health" [GIN] 2026/06/09 - 14:30:26 | 200 | 346.17µs | 100.64.0.3 | GET "/v1/subscriptions" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:27.411Z","caller":"api_keys/service.go:150","message":"Created API key","user":"alice_lead","groups":["system:authenticated","Engineering","Project-Alpha"],"id":"38d5199e-47b9-4bd2-af6e-e296b2892d3b","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:27.411Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"38d5199e-47b9-4bd2-af6e-e296b2892d3b","keyPrefix":"sk-oai-1UigkcyEVJxp...","username":"alice_lead","groups":["system:authenticated","Engineering","Project-Alpha"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:27 | 201 | 2.028639ms | 100.64.0.4 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:30:28 | 200 | 37.51µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:30:28 | 200 | 60.256µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:30:33 | 200 | 56.437µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:30:38 | 200 | 34.364µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:30:38 | 200 | 32.676µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:30:43 | 200 | 38.957µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:30:48 | 200 | 32.823µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:30:48 | 200 | 34.19µs | 10.134.0.2 | GET "/health" {"level":"info","timestamp":"2026-06-09T14:30:50.638Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"bd4baad7-fa50-4dc2-8e0a-2dc1d9f6e66a","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:50.639Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"bd4baad7-fa50-4dc2-8e0a-2dc1d9f6e66a","keyPrefix":"sk-oai-AeC3hfa2YKwn...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:50 | 201 | 1.548156ms | 100.64.0.4 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:50.684Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"b610c4f3-3f5a-47d9-8873-7b0e05d3c27f","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:50.684Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"b610c4f3-3f5a-47d9-8873-7b0e05d3c27f","keyPrefix":"sk-oai-9sNhGUnOdheF...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:50 | 201 | 1.081671ms | 100.64.0.2 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:30:50 | 200 | 425.63µs | 100.64.0.3 | GET "/v1/api-keys/b610c4f3-3f5a-47d9-8873-7b0e05d3c27f" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:50.756Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"1bea249a-9c6c-4c79-8a80-76808b37cb17","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:50.756Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"1bea249a-9c6c-4c79-8a80-76808b37cb17","keyPrefix":"sk-oai-7Rmd4vfQ4jOY...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:50 | 201 | 1.058722ms | 100.64.0.4 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:50.792Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"14e12462-9280-4ab8-a810-edc7f8734766","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:50.792Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"14e12462-9280-4ab8-a810-edc7f8734766","keyPrefix":"sk-oai-1JEinwzQpwaA...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:50 | 201 | 1.09881ms | 100.64.0.2 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:30:50 | 200 | 3.893201ms | 100.64.0.3 | POST "/v1/api-keys/search" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:30:50 | 200 | 467.485µs | 100.64.0.2 | POST "/v1/api-keys/search" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:50.917Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"0df44d67-8169-4302-8459-95edaec335c6","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:50.917Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"0df44d67-8169-4302-8459-95edaec335c6","keyPrefix":"sk-oai-15RYJKlV1v0J...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:50 | 201 | 1.027453ms | 100.64.0.3 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:50.951Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"0df44d67-8169-4302-8459-95edaec335c6"} {"level":"info","timestamp":"2026-06-09T14:30:50.951Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"0df44d67-8169-4302-8459-95edaec335c6","revokedBy":"system:serviceaccount:default:tester-regular-user"} [GIN] 2026/06/09 - 14:30:50 | 200 | 1.6483ms | 100.64.0.4 | DELETE "/v1/api-keys/0df44d67-8169-4302-8459-95edaec335c6" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:30:50 | 200 | 331.235µs | 100.64.0.4 | GET "/v1/api-keys/0df44d67-8169-4302-8459-95edaec335c6" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:51.024Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"125d6bf7-d107-440a-bc44-18c515705001","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:51.024Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"125d6bf7-d107-440a-bc44-18c515705001","keyPrefix":"sk-oai-1BILLrVlwVBc...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:51 | 201 | 1.013414ms | 100.64.0.2 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:30:51 | 200 | 268.592µs | 100.64.0.3 | GET "/v1/api-keys/125d6bf7-d107-440a-bc44-18c515705001" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:30:51 | 200 | 3.012078ms | 100.64.0.3 | POST "/v1/api-keys/search" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:51.123Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"125d6bf7-d107-440a-bc44-18c515705001"} {"level":"info","timestamp":"2026-06-09T14:30:51.123Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"125d6bf7-d107-440a-bc44-18c515705001","revokedBy":"system:serviceaccount:maas-admin:tester-admin-user"} [GIN] 2026/06/09 - 14:30:51 | 200 | 1.296845ms | 100.64.0.4 | DELETE "/v1/api-keys/125d6bf7-d107-440a-bc44-18c515705001" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:51.160Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:maas-admin:tester-admin-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:maas-admin","system:authenticated"],"id":"a9765380-f70b-4a13-82cf-cafb975e5152","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:51.160Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"a9765380-f70b-4a13-82cf-cafb975e5152","keyPrefix":"sk-oai-IVZO1hQU2SLW...","username":"system:serviceaccount:maas-admin:tester-admin-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:maas-admin","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:51 | 201 | 1.119333ms | 100.64.0.2 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"warn","timestamp":"2026-06-09T14:30:51.193Z","caller":"api_keys/handler.go:124","message":"Unauthorized API key access attempt","requestingUser":"system:serviceaccount:default:tester-regular-user","keyOwner":"system:serviceaccount:maas-admin:tester-admin-user","keyId":"a9765380-f70b-4a13-82cf-cafb975e5152"} [GIN] 2026/06/09 - 14:30:51 | 404 | 310.566µs | 100.64.0.3 | GET "/v1/api-keys/a9765380-f70b-4a13-82cf-cafb975e5152" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"warn","timestamp":"2026-06-09T14:30:51.224Z","caller":"api_keys/handler.go:305","message":"Unauthorized API key revocation attempt","requestingUser":"system:serviceaccount:default:tester-regular-user","keyOwner":"system:serviceaccount:maas-admin:tester-admin-user","keyId":"a9765380-f70b-4a13-82cf-cafb975e5152"} [GIN] 2026/06/09 - 14:30:51 | 404 | 342.266µs | 100.64.0.4 | DELETE "/v1/api-keys/a9765380-f70b-4a13-82cf-cafb975e5152" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:51.258Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"d2dc4a40-e018-4002-805c-af4d34085fc5","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:51.258Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"d2dc4a40-e018-4002-805c-af4d34085fc5","keyPrefix":"sk-oai-1D4DLvOjClp1...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:51 | 201 | 1.041414ms | 100.64.0.2 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:51.291Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"94e7a3b8-edb4-4550-95be-bfd53e03cda5","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:51.291Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"94e7a3b8-edb4-4550-95be-bfd53e03cda5","keyPrefix":"sk-oai-u8CjpVg0P0d1...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:51 | 201 | 1.134158ms | 100.64.0.2 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:51.322Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"3d791b16-ee5c-437b-af69-f1b4cc31929b","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:51.322Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"3d791b16-ee5c-437b-af69-f1b4cc31929b","keyPrefix":"sk-oai-uDzJuifMuhsU...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:51 | 201 | 967.98µs | 100.64.0.3 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:30:51 | 200 | 280.196µs | 100.64.0.4 | GET "/v1/api-keys/d2dc4a40-e018-4002-805c-af4d34085fc5" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:51.392Z","caller":"api_keys/store_postgres.go:448","message":"Revoked all keys for user","count":7,"user":"system:serviceaccount:default:tester-regular-user"} {"level":"info","timestamp":"2026-06-09T14:30:51.392Z","caller":"api_keys/handler.go:531","message":"Bulk revoked API keys","count":7,"targetUser":"system:serviceaccount:default:tester-regular-user","revokedBy":"system:serviceaccount:default:tester-regular-user"} [GIN] 2026/06/09 - 14:30:51 | 200 | 1.466215ms | 100.64.0.4 | POST "/v1/api-keys/bulk-revoke" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:30:51 | 200 | 270.459µs | 100.64.0.3 | GET "/v1/api-keys/d2dc4a40-e018-4002-805c-af4d34085fc5" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:30:51 | 200 | 285.456µs | 100.64.0.2 | GET "/v1/api-keys/94e7a3b8-edb4-4550-95be-bfd53e03cda5" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:30:51 | 200 | 295.941µs | 100.64.0.2 | GET "/v1/api-keys/3d791b16-ee5c-437b-af69-f1b4cc31929b" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"warn","timestamp":"2026-06-09T14:30:51.528Z","caller":"api_keys/handler.go:508","message":"Unauthorized bulk revoke attempt","requestingUser":"system:serviceaccount:default:tester-regular-user","targetUser":"someotheruser"} [GIN] 2026/06/09 - 14:30:51 | 403 | 71.692µs | 100.64.0.4 | POST "/v1/api-keys/bulk-revoke" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:51.562Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"91920531-b245-4ec4-bcac-46504da211fd","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:51.562Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"91920531-b245-4ec4-bcac-46504da211fd","keyPrefix":"sk-oai-CbLWRbZgrK0W...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:51 | 201 | 1.104883ms | 100.64.0.3 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:30:51 | 200 | 271.232µs | 100.64.0.4 | GET "/v1/api-keys/91920531-b245-4ec4-bcac-46504da211fd" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:51.629Z","caller":"api_keys/store_postgres.go:448","message":"Revoked all keys for user","count":1,"user":"system:serviceaccount:default:tester-regular-user"} {"level":"info","timestamp":"2026-06-09T14:30:51.629Z","caller":"api_keys/handler.go:531","message":"Bulk revoked API keys","count":1,"targetUser":"system:serviceaccount:default:tester-regular-user","revokedBy":"system:serviceaccount:maas-admin:tester-admin-user"} [GIN] 2026/06/09 - 14:30:51 | 200 | 986.944µs | 100.64.0.3 | POST "/v1/api-keys/bulk-revoke" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:51.665Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"12060c30-edd2-4d64-8102-7955ec827687","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:51.665Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"12060c30-edd2-4d64-8102-7955ec827687","keyPrefix":"sk-oai-1O2TxbJD6esa...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:51 | 201 | 1.100392ms | 100.64.0.2 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:51.700Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"79b45ddc-f009-439c-af95-9c3fe28491b4","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:51.700Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"79b45ddc-f009-439c-af95-9c3fe28491b4","keyPrefix":"sk-oai-oaAXuMq6WSG4...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:51 | 201 | 1.037332ms | 100.64.0.2 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"error","timestamp":"2026-06-09T14:30:51.742Z","caller":"api_keys/handler.go:192","message":"Failed to create API key","error":"requested expiration (4320h0m0s) exceeds maximum allowed (90 days): expiration exceeds maximum allowed","stacktrace":"github.com/opendatahub-io/models-as-a-service/maas-api/internal/api_keys.(*Handler).CreateAPIKey\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/api_keys/handler.go:192\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\nmain.registerHandlers.(*Handler).ExtractUserInfo.func4\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/token/handler.go:121\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\nmain.serve.NewMiddleware.func8\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/metrics/middleware.go:20\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\ngithub.com/gin-gonic/gin.LoggerWithConfig.func1\n\tgithub.com/gin-gonic/gin@v1.10.1/logger.go:249\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\nmain.serve.RequestID.func7\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/middleware/request_id.go:57\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\ngithub.com/gin-gonic/gin.CustomRecoveryWithWriter.func1\n\tgithub.com/gin-gonic/gin@v1.10.1/recovery.go:102\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\ngithub.com/gin-gonic/gin.(*Engine).handleHTTPRequest\n\tgithub.com/gin-gonic/gin@v1.10.1/gin.go:644\ngithub.com/gin-gonic/gin.(*Engine).ServeHTTP\n\tgithub.com/gin-gonic/gin@v1.10.1/gin.go:600\nnet/http.serverHandler.ServeHTTP\n\tnet/http/server.go:3340\nnet/http.(*conn).serve\n\tnet/http/server.go:2109"} [GIN] 2026/06/09 - 14:30:51 | 400 | 147.304µs | 100.64.0.3 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:51.782Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"f7304aaf-81be-4fe0-ac7e-6d19b1a7893f","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:51.782Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"f7304aaf-81be-4fe0-ac7e-6d19b1a7893f","keyPrefix":"sk-oai-SFCdcgscdCZZ...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:51 | 201 | 1.137311ms | 100.64.0.4 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:51.815Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"aaca0608-069a-4a1b-a643-ccfa24c3388f","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:51.815Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"aaca0608-069a-4a1b-a643-ccfa24c3388f","keyPrefix":"sk-oai-KOQOLAsBtva3...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:51 | 201 | 1.275879ms | 100.64.0.4 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:51.846Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"bc370d36-c3eb-4c53-ada0-55ba89a6a42b","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:51.846Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"bc370d36-c3eb-4c53-ada0-55ba89a6a42b","keyPrefix":"sk-oai-izsEIfAVOZ7z...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:51 | 201 | 1.042753ms | 100.64.0.2 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:30:51 | 200 | 136.342µs | 10.132.0.47 | POST "/internal/v1/subscriptions/select" [GIN] 2026/06/09 - 14:30:51 | 200 | 14.356102ms | 100.64.0.3 | GET "/v1/models" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:30:51 | 200 | 321.809µs | 10.132.0.47 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 14:30:51 | 200 | 121.805µs | 10.132.0.47 | POST "/internal/v1/subscriptions/select" [GIN] 2026/06/09 - 14:30:51 | 200 | 74.734µs | 10.132.0.47 | POST "/internal/v1/api-keys/validate" {"level":"info","timestamp":"2026-06-09T14:30:52.020Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"e1483943-eea6-4dd7-b410-0cb05b8ffb8e","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:52.020Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"e1483943-eea6-4dd7-b410-0cb05b8ffb8e","keyPrefix":"sk-oai-q8zoRPE6Oqa7...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:52 | 201 | 1.017454ms | 100.64.0.3 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:30:52 | 200 | 336.954µs | 10.132.0.47 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 14:30:52 | 200 | 138.07µs | 10.132.0.47 | POST "/internal/v1/subscriptions/select" {"level":"info","timestamp":"2026-06-09T14:30:52.086Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"e1483943-eea6-4dd7-b410-0cb05b8ffb8e"} {"level":"info","timestamp":"2026-06-09T14:30:52.086Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"e1483943-eea6-4dd7-b410-0cb05b8ffb8e","revokedBy":"system:serviceaccount:default:tester-regular-user"} [GIN] 2026/06/09 - 14:30:52 | 200 | 1.536529ms | 100.64.0.2 | DELETE "/v1/api-keys/e1483943-eea6-4dd7-b410-0cb05b8ffb8e" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:30:53 | 200 | 32.617µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:30:54 | 200 | 591.714µs | 10.132.0.47 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 14:30:54 | 200 | 368.876µs | 10.132.0.47 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 14:30:54 | 200 | 131.076µs | 10.132.0.47 | POST "/internal/v1/subscriptions/select" {"level":"info","timestamp":"2026-06-09T14:30:54.192Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"1afe5460-90ef-4d9c-b73b-8722128b2297","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:54.192Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"1afe5460-90ef-4d9c-b73b-8722128b2297","keyPrefix":"sk-oai-1FxOlEUl8Jt2...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:54 | 201 | 1.076245ms | 100.64.0.2 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:54.224Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"1afe5460-90ef-4d9c-b73b-8722128b2297"} {"level":"info","timestamp":"2026-06-09T14:30:54.224Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"1afe5460-90ef-4d9c-b73b-8722128b2297","revokedBy":"system:serviceaccount:default:tester-regular-user"} [GIN] 2026/06/09 - 14:30:54 | 200 | 1.49776ms | 100.64.0.2 | DELETE "/v1/api-keys/1afe5460-90ef-4d9c-b73b-8722128b2297" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:30:54 | 404 | 527.606µs | 100.64.0.4 | DELETE "/v1/api-keys/1afe5460-90ef-4d9c-b73b-8722128b2297" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:30:54 | 404 | 342.166µs | 100.64.0.3 | DELETE "/v1/api-keys/nonexistent-uuid-12345" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:54.328Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"538f239c-91dd-4067-b2b5-103be9964bf5","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:54.328Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"538f239c-91dd-4067-b2b5-103be9964bf5","keyPrefix":"sk-oai-H8iOVAe8gjEq...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:54 | 201 | 1.230323ms | 100.64.0.3 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:54.357Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"538f239c-91dd-4067-b2b5-103be9964bf5"} {"level":"info","timestamp":"2026-06-09T14:30:54.358Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"538f239c-91dd-4067-b2b5-103be9964bf5","revokedBy":"system:serviceaccount:default:tester-regular-user"} [GIN] 2026/06/09 - 14:30:54 | 200 | 1.224312ms | 100.64.0.2 | DELETE "/v1/api-keys/538f239c-91dd-4067-b2b5-103be9964bf5" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:54.390Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"e63fa409-9b6d-40fe-b360-73237c8beab7","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:54.390Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"e63fa409-9b6d-40fe-b360-73237c8beab7","keyPrefix":"sk-oai-5RWyN46S9loB...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:54 | 201 | 982.019µs | 100.64.0.4 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:30:54 | 200 | 332.323µs | 10.132.0.47 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 14:30:54 | 200 | 337.762µs | 10.132.0.47 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 14:30:54 | 200 | 146µs | 10.132.0.47 | POST "/internal/v1/subscriptions/select" {"level":"info","timestamp":"2026-06-09T14:30:54.489Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"f0f48b60-1feb-487d-9526-2721a4b515f3","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:54.489Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"f0f48b60-1feb-487d-9526-2721a4b515f3","keyPrefix":"sk-oai-1ddkpNMJcQHf...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:54 | 201 | 1.057181ms | 100.64.0.2 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:54.523Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"48a30cb2-5a6a-4e30-940e-bbea57bbd747","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:54.523Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"48a30cb2-5a6a-4e30-940e-bbea57bbd747","keyPrefix":"sk-oai-1IfgKc4Eim3v...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:54 | 201 | 1.045972ms | 100.64.0.3 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:54.555Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"74dc7f98-2805-42fe-8243-9b624f58220f","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:54.555Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"74dc7f98-2805-42fe-8243-9b624f58220f","keyPrefix":"sk-oai-1WhdQ61ZevuZ...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:54 | 201 | 1.270489ms | 100.64.0.2 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:54.590Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"f0f48b60-1feb-487d-9526-2721a4b515f3"} {"level":"info","timestamp":"2026-06-09T14:30:54.590Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"f0f48b60-1feb-487d-9526-2721a4b515f3","revokedBy":"system:serviceaccount:default:tester-regular-user"} [GIN] 2026/06/09 - 14:30:54 | 200 | 1.577124ms | 100.64.0.4 | DELETE "/v1/api-keys/f0f48b60-1feb-487d-9526-2721a4b515f3" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:54.626Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"48a30cb2-5a6a-4e30-940e-bbea57bbd747"} {"level":"info","timestamp":"2026-06-09T14:30:54.626Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"48a30cb2-5a6a-4e30-940e-bbea57bbd747","revokedBy":"system:serviceaccount:default:tester-regular-user"} [GIN] 2026/06/09 - 14:30:54 | 200 | 1.409891ms | 100.64.0.4 | DELETE "/v1/api-keys/48a30cb2-5a6a-4e30-940e-bbea57bbd747" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:54.658Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"74dc7f98-2805-42fe-8243-9b624f58220f"} {"level":"info","timestamp":"2026-06-09T14:30:54.658Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"74dc7f98-2805-42fe-8243-9b624f58220f","revokedBy":"system:serviceaccount:default:tester-regular-user"} [GIN] 2026/06/09 - 14:30:54 | 200 | 1.326006ms | 100.64.0.2 | DELETE "/v1/api-keys/74dc7f98-2805-42fe-8243-9b624f58220f" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:54.697Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"6b36bc32-6217-44da-961d-9fe550f314e4","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:54.697Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"6b36bc32-6217-44da-961d-9fe550f314e4","keyPrefix":"sk-oai-1ArcusXkrLDU...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:54 | 201 | 1.174089ms | 100.64.0.3 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:54.728Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"e42f7ddf-75d4-4d44-bcc7-29e783dc6027","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:54.728Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"e42f7ddf-75d4-4d44-bcc7-29e783dc6027","keyPrefix":"sk-oai-1N4uKgpkR0sO...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:54 | 201 | 1.159855ms | 100.64.0.3 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:54.759Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"3c7bca3b-b212-4a6c-b234-eb4bc909db48","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:54.759Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"3c7bca3b-b212-4a6c-b234-eb4bc909db48","keyPrefix":"sk-oai-jusJxfqmQ6ds...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:54 | 201 | 1.064687ms | 100.64.0.2 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:30:54 | 200 | 329.542µs | 10.132.0.47 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 14:30:54 | 200 | 144.82µs | 10.132.0.47 | POST "/internal/v1/subscriptions/select" {"level":"info","timestamp":"2026-06-09T14:30:54.823Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"6b36bc32-6217-44da-961d-9fe550f314e4"} {"level":"info","timestamp":"2026-06-09T14:30:54.823Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"6b36bc32-6217-44da-961d-9fe550f314e4","revokedBy":"system:serviceaccount:default:tester-regular-user"} [GIN] 2026/06/09 - 14:30:54 | 200 | 1.119916ms | 100.64.0.3 | DELETE "/v1/api-keys/6b36bc32-6217-44da-961d-9fe550f314e4" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:54.857Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"e42f7ddf-75d4-4d44-bcc7-29e783dc6027"} {"level":"info","timestamp":"2026-06-09T14:30:54.857Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"e42f7ddf-75d4-4d44-bcc7-29e783dc6027","revokedBy":"system:serviceaccount:default:tester-regular-user"} [GIN] 2026/06/09 - 14:30:54 | 200 | 1.551662ms | 100.64.0.2 | DELETE "/v1/api-keys/e42f7ddf-75d4-4d44-bcc7-29e783dc6027" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:54.894Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"3c7bca3b-b212-4a6c-b234-eb4bc909db48"} {"level":"info","timestamp":"2026-06-09T14:30:54.894Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"3c7bca3b-b212-4a6c-b234-eb4bc909db48","revokedBy":"system:serviceaccount:default:tester-regular-user"} [GIN] 2026/06/09 - 14:30:54 | 200 | 1.3212ms | 100.64.0.4 | DELETE "/v1/api-keys/3c7bca3b-b212-4a6c-b234-eb4bc909db48" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:30:54 | 200 | 311.968µs | 10.132.0.47 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 14:30:54 | 200 | 296.215µs | 10.132.0.47 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 14:30:54 | 200 | 300.047µs | 10.132.0.47 | POST "/internal/v1/api-keys/validate" {"level":"info","timestamp":"2026-06-09T14:30:55.258Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"f43d664d-78d5-4c9e-b2ee-553505290903","ephemeral":true} {"level":"info","timestamp":"2026-06-09T14:30:55.258Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"f43d664d-78d5-4c9e-b2ee-553505290903","keyPrefix":"sk-oai-12Z5gYwlvL43...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":true} [GIN] 2026/06/09 - 14:30:55 | 201 | 1.226157ms | 100.64.0.3 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:30:55 | 200 | 3.267225ms | 100.64.0.4 | POST "/v1/api-keys/search" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:30:55 | 200 | 532.041µs | 100.64.0.2 | POST "/v1/api-keys/search" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:55.368Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"332bc0ea-0da8-4143-891a-0825daca1d74","ephemeral":true} {"level":"info","timestamp":"2026-06-09T14:30:55.368Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"332bc0ea-0da8-4143-891a-0825daca1d74","keyPrefix":"sk-oai-TManptEfyLgM...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":true} [GIN] 2026/06/09 - 14:30:55 | 201 | 2.029402ms | 100.64.0.4 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:30:55.767Z","caller":"api_keys/service.go:305","message":"Ephemeral key cleanup completed","deletedCount":0} [GIN] 2026/06/09 - 14:30:55 | 200 | 780.885µs | ::1 | POST "/internal/v1/api-keys/cleanup" [GIN] 2026/06/09 - 14:30:55 | 200 | 399.467µs | 100.64.0.2 | GET "/v1/api-keys/332bc0ea-0da8-4143-891a-0825daca1d74" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:30:58 | 200 | 49.814µs | 10.134.0.2 | GET "/health" {"level":"info","timestamp":"2026-06-09T14:30:58.723Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:llm:e2e-apikey-active-sa","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:llm","system:authenticated"],"id":"89bf081a-b50b-4108-a3d0-36c50a94a95b","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:30:58.723Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"89bf081a-b50b-4108-a3d0-36c50a94a95b","keyPrefix":"sk-oai-10XWsKtEv2ny...","username":"system:serviceaccount:llm:e2e-apikey-active-sa","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:llm","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:30:58 | 201 | 1.413025ms | 100.64.0.3 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:30:58 | 200 | 37.871µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:31:03 | 200 | 41.98µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:31:08 | 200 | 37.832µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:31:08 | 200 | 39.414µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:31:13 | 200 | 40.175µs | 10.134.0.2 | GET "/health" {"level":"info","timestamp":"2026-06-09T14:31:17.996Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:llm:e2e-apikey-degraded-sa","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:llm","system:authenticated"],"id":"b11d9085-851a-45e1-bbe5-31a1a4fed382","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:31:17.996Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"b11d9085-851a-45e1-bbe5-31a1a4fed382","keyPrefix":"sk-oai-fmiuOrhezwPn...","username":"system:serviceaccount:llm:e2e-apikey-degraded-sa","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:llm","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:31:17 | 201 | 2.079425ms | 100.64.0.4 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:31:18 | 200 | 39.971µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:31:18 | 200 | 39.696µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:31:23 | 200 | 40.056µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:31:28 | 200 | 49.03µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:31:28 | 200 | 47.064µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:31:33 | 200 | 42.52µs | 10.134.0.2 | GET "/health" {"level":"warn","timestamp":"2026-06-09T14:31:37.430Z","caller":"api_keys/service.go:130","message":"Subscription selection failed when creating API key","user":"system:serviceaccount:llm:e2e-apikey-failed-sa","requestedSubscription":"e2e-apikey-failed-sub","error":"requested model is unhealthy in subscription"} {"level":"error","timestamp":"2026-06-09T14:31:37.430Z","caller":"api_keys/handler.go:192","message":"Failed to create API key","error":"requested model is unhealthy in subscription","stacktrace":"github.com/opendatahub-io/models-as-a-service/maas-api/internal/api_keys.(*Handler).CreateAPIKey\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/api_keys/handler.go:192\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\nmain.registerHandlers.(*Handler).ExtractUserInfo.func4\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/token/handler.go:121\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\nmain.serve.NewMiddleware.func8\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/metrics/middleware.go:20\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\ngithub.com/gin-gonic/gin.LoggerWithConfig.func1\n\tgithub.com/gin-gonic/gin@v1.10.1/logger.go:249\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\nmain.serve.RequestID.func7\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/middleware/request_id.go:57\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\ngithub.com/gin-gonic/gin.CustomRecoveryWithWriter.func1\n\tgithub.com/gin-gonic/gin@v1.10.1/recovery.go:102\ngithub.com/gin-gonic/gin.(*Context).Next\n\tgithub.com/gin-gonic/gin@v1.10.1/context.go:185\ngithub.com/gin-gonic/gin.(*Engine).handleHTTPRequest\n\tgithub.com/gin-gonic/gin@v1.10.1/gin.go:644\ngithub.com/gin-gonic/gin.(*Engine).ServeHTTP\n\tgithub.com/gin-gonic/gin@v1.10.1/gin.go:600\nnet/http.serverHandler.ServeHTTP\n\tnet/http/server.go:3340\nnet/http.(*conn).serve\n\tnet/http/server.go:2109"} [GIN] 2026/06/09 - 14:31:37 | 403 | 276.421µs | 100.64.0.3 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:31:38 | 200 | 41.281µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:31:38 | 200 | 43.005µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:31:43 | 200 | 40.504µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:31:48 | 200 | 47.771µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:31:48 | 200 | 55.06µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:31:53 | 200 | 44.299µs | 10.134.0.2 | GET "/health" {"level":"info","timestamp":"2026-06-09T14:31:56.852Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:llm:e2e-apikey-pending-sa","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:llm","system:authenticated"],"id":"0cc4d3de-363c-4b41-837f-7e87a4885287","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:31:56.852Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"0cc4d3de-363c-4b41-837f-7e87a4885287","keyPrefix":"sk-oai-nnobB3MGy14c...","username":"system:serviceaccount:llm:e2e-apikey-pending-sa","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:llm","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:31:56 | 201 | 2.3543ms | 100.64.0.2 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:31:58 | 200 | 40.017µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:31:58 | 200 | 47.534µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:32:03 | 200 | 39.878µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:32:08 | 200 | 46.516µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:32:08 | 200 | 39.491µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:32:13 | 200 | 42.63µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:32:18 | 200 | 44.735µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:32:18 | 200 | 38.653µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:32:23 | 200 | 41.714µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:32:28 | 200 | 49.828µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:32:28 | 200 | 34.234µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:32:33 | 200 | 34.547µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:32:38 | 200 | 35.387µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:32:38 | 200 | 38.835µs | 10.134.0.2 | GET "/health" {"level":"info","timestamp":"2026-06-09T14:32:42.559Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"9381180b-8918-4e98-b678-d84f361f5e78","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:32:42.559Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"9381180b-8918-4e98-b678-d84f361f5e78","keyPrefix":"sk-oai-B4OA29PwdfUu...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:32:42 | 201 | 2.001988ms | 100.64.0.4 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:32:42.599Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"91a82e55-4a50-4912-93d4-8f8fe9f225b5","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:32:42.599Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"91a82e55-4a50-4912-93d4-8f8fe9f225b5","keyPrefix":"sk-oai-TSxG3nJZDhvD...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:32:42 | 201 | 1.664731ms | 100.64.0.2 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:32:42 | 200 | 3.722441ms | 100.64.0.3 | POST "/v1/api-keys/search" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:32:42.695Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"9381180b-8918-4e98-b678-d84f361f5e78"} {"level":"info","timestamp":"2026-06-09T14:32:42.695Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"9381180b-8918-4e98-b678-d84f361f5e78","revokedBy":"system:serviceaccount:default:tester-regular-user"} [GIN] 2026/06/09 - 14:32:42 | 200 | 2.255493ms | 100.64.0.4 | DELETE "/v1/api-keys/9381180b-8918-4e98-b678-d84f361f5e78" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:32:42.732Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"91a82e55-4a50-4912-93d4-8f8fe9f225b5"} {"level":"info","timestamp":"2026-06-09T14:32:42.732Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"91a82e55-4a50-4912-93d4-8f8fe9f225b5","revokedBy":"system:serviceaccount:default:tester-regular-user"} [GIN] 2026/06/09 - 14:32:42 | 200 | 1.960428ms | 100.64.0.4 | DELETE "/v1/api-keys/91a82e55-4a50-4912-93d4-8f8fe9f225b5" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T14:32:42.776Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"id":"71f1b7b4-f8c0-4294-a5e4-03d34770db19","ephemeral":false} {"level":"info","timestamp":"2026-06-09T14:32:42.776Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"71f1b7b4-f8c0-4294-a5e4-03d34770db19","keyPrefix":"sk-oai-7qejOMmCatyA...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 14:32:42 | 201 | 1.65101ms | 100.64.0.2 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:32:43 | 200 | 873.468µs | 10.132.0.47 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 14:32:43 | 200 | 136.573µs | 100.64.0.3 | POST "/internal/v1/subscriptions/select" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:32:43 | 200 | 34.109µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:32:48 | 200 | 33.799µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:32:48 | 200 | 33.362µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:32:53 | 200 | 34.904µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:32:58 | 200 | 45.177µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:32:58 | 200 | 35.174µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:32:59 | 200 | 618.542µs | 10.132.0.47 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 14:32:59 | 200 | 155.558µs | 100.64.0.3 | POST "/internal/v1/subscriptions/select" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 14:33:03 | 200 | 54.656µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:33:08 | 200 | 35.321µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:33:08 | 200 | 36.68µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:33:13 | 200 | 35.998µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:33:18 | 200 | 34.825µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:33:18 | 200 | 35.122µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:33:23 | 200 | 32.893µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:33:28 | 200 | 43.186µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:33:28 | 200 | 32.526µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:33:33 | 200 | 35.264µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:33:38 | 200 | 33.658µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:33:38 | 200 | 32.91µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:33:43 | 200 | 33.51µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:33:48 | 200 | 34.283µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:33:48 | 200 | 34.679µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:33:53 | 200 | 33.794µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:33:58 | 200 | 34.764µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:33:58 | 200 | 57.184µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:34:03 | 200 | 33.994µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:34:08 | 200 | 35.633µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:34:08 | 200 | 45.268µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:34:13 | 200 | 33.451µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:34:18 | 200 | 34.182µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:34:18 | 200 | 36.01µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:34:23 | 200 | 32.895µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:34:28 | 200 | 42.15µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:34:28 | 200 | 38.11µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:34:33 | 200 | 32.98µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:34:38 | 200 | 35.717µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:34:38 | 200 | 42.765µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:34:43 | 200 | 35.258µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:34:48 | 200 | 33.712µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:34:48 | 200 | 34.711µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:34:53 | 200 | 37.229µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:34:58 | 200 | 33.202µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:34:58 | 200 | 34.309µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:35:03 | 200 | 32.852µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:35:08 | 200 | 33.047µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:35:08 | 200 | 45.548µs | 10.134.0.2 | GET "/health" [GIN] 2026/06/09 - 14:35:13 | 200 | 34.171µs | 10.134.0.2 | GET "/health"