{"level":"info","timestamp":"2026-06-09T15:28:24.124Z","caller":"cmd/main.go:65","message":"Loading database connection URL from secret..."} {"level":"info","timestamp":"2026-06-09T15:28:24.140Z","caller":"cmd/main.go:172","message":"Connecting to PostgreSQL database..."} {"level":"info","timestamp":"2026-06-09T15:28:24.140Z","caller":"cmd/main.go:101","message":"Metrics server starting","address":":9090"} {"level":"info","timestamp":"2026-06-09T15:28:24.296Z","caller":"api_keys/db_driver.go:90","message":"Database schema applied","version":4} {"level":"info","timestamp":"2026-06-09T15:28:24.296Z","caller":"api_keys/db_driver.go:57","message":"Connected to PostgreSQL database (schema applied)"} {"level":"info","timestamp":"2026-06-09T15:28:24.401Z","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-09T15:28:24.506Z","caller":"cmd/main.go:134","message":"Server starting","address":":8443","secure":true} [GIN] 2026/06/09 - 15:28:30 | 200 | 81.284µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:28:35 | 200 | 67.84µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:28:40 | 200 | 47.373µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:28:45 | 200 | 36.84µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:28:50 | 200 | 45.496µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:28:55 | 200 | 43.49µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:29:00 | 200 | 33.62µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:29:01 | 200 | 36.092µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:29:05 | 200 | 33.442µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:29:10 | 200 | 34.416µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:29:11 | 200 | 34.243µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:29:15 | 200 | 34.248µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:29:20 | 200 | 34.806µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:29:21 | 200 | 32.797µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:29:25 | 200 | 46.597µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:29:30 | 200 | 41.912µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:29:31 | 200 | 35.22µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:29:35 | 200 | 44.891µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:29:40 | 200 | 47.109µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:29:41 | 200 | 41.695µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:29:45 | 200 | 33.186µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:29:50 | 200 | 59.779µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:29:51 | 200 | 35.078µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:29:55 | 200 | 34.781µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:30:00 | 200 | 37.157µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:30:01 | 200 | 33.004µs | 10.132.0.2 | GET "/health" {"level":"info","timestamp":"2026-06-09T15:30:04.506Z","caller":"api_keys/service.go:305","message":"Ephemeral key cleanup completed","deletedCount":0} [GIN] 2026/06/09 - 15:30:04 | 200 | 9.496796ms | 10.134.0.48 | POST "/internal/v1/api-keys/cleanup" [GIN] 2026/06/09 - 15:30:05 | 200 | 35.176µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:30:10 | 200 | 35.957µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:30:11 | 200 | 36.485µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:30:15 | 200 | 33.175µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:30:20 | 200 | 33.847µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:30:21 | 200 | 47.755µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:30:25 | 200 | 45.641µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:30:30 | 200 | 37.265µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:30:31 | 200 | 35.972µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:30:35 | 200 | 43.276µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:30:40 | 200 | 44.839µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:30:41 | 200 | 36.16µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:30:45 | 200 | 35.577µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:30:50 | 200 | 33.656µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:30:51 | 200 | 58.945µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:30:55 | 200 | 36.775µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:31:00 | 200 | 34.244µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:31:01 | 200 | 34.593µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:31:05 | 200 | 34.116µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:31:10 | 200 | 37.046µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:31:11 | 200 | 34.797µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:31:15 | 200 | 41.617µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:31:20 | 200 | 36.062µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:31:21 | 200 | 38.421µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:31:25 | 200 | 34.762µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:31:30 | 200 | 33.778µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:31:31 | 200 | 35.474µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:31:35 | 200 | 34.963µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:31:40 | 200 | 34.635µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:31:41 | 200 | 40.788µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:31:45 | 200 | 51.125µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:31:50 | 200 | 37.225µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:31:51 | 200 | 45.643µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:31:55 | 200 | 36.734µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:32:00 | 200 | 32.332µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:32:01 | 200 | 43.258µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:32:05 | 200 | 33.755µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:32:10 | 200 | 33.61µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:32:11 | 200 | 37.552µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:32:15 | 200 | 34.914µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:32:20 | 200 | 34.241µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:32:21 | 200 | 33.613µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:32:25 | 200 | 34.724µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:32:30 | 200 | 33.378µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:32:31 | 200 | 33.396µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:32:35 | 200 | 37.614µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:32:40 | 200 | 35.886µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:32:41 | 200 | 36.607µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:32:45 | 200 | 36.093µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:32:50 | 200 | 35.811µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:32:51 | 200 | 33.541µs | 10.132.0.2 | GET "/health" {"level":"info","timestamp":"2026-06-09T15:32:53.977Z","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":"0a87cea3-02dc-43d2-b37f-8367867d54c3","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:32:53.977Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"0a87cea3-02dc-43d2-b37f-8367867d54c3","keyPrefix":"sk-oai-JKeXdiqA4QgB...","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 - 15:32:53 | 201 | 2.481592ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:32:54 | 200 | 710.811µs | 10.134.0.49 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 15:32:54 | 200 | 764.392347ms | 34.228.250.194 | GET "/v1/models" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:32:54.874Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"0a87cea3-02dc-43d2-b37f-8367867d54c3"} {"level":"info","timestamp":"2026-06-09T15:32:54.874Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"0a87cea3-02dc-43d2-b37f-8367867d54c3","revokedBy":"system:serviceaccount:maas-admin:tester-admin-user"} [GIN] 2026/06/09 - 15:32:54 | 200 | 2.3988ms | 34.228.250.194 | DELETE "/v1/api-keys/0a87cea3-02dc-43d2-b37f-8367867d54c3" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:32:55 | 200 | 37.142µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:33:00 | 200 | 35.343µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:33:01 | 200 | 33.885µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:33:04 | 200 | 18.579µs | 34.228.250.194 | GET "/health" [GIN] 2026/06/09 - 15:33:04 | 200 | 182.436µs | 34.228.250.194 | GET "/v1/subscriptions" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:05.121Z","caller":"api_keys/service.go:150","message":"Created API key","user":"alice_lead","groups":["system:authenticated","Engineering","Project-Alpha"],"id":"e9763c84-79dc-425d-9f7d-75d406eed1fd","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:05.121Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"e9763c84-79dc-425d-9f7d-75d406eed1fd","keyPrefix":"sk-oai-127HOLGbNl26...","username":"alice_lead","groups":["system:authenticated","Engineering","Project-Alpha"],"ephemeral":false} [GIN] 2026/06/09 - 15:33:05 | 201 | 1.832293ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:33:05 | 200 | 37.044µs | 10.132.0.2 | GET "/health" {"level":"info","timestamp":"2026-06-09T15:33:06.080Z","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":"d5b15eee-ae21-4f4b-9b93-8d8334ca3310","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:06.080Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"d5b15eee-ae21-4f4b-9b93-8d8334ca3310","keyPrefix":"sk-oai-bDmh1M0IbLE1...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:33:06 | 201 | 1.643744ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:06.141Z","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":"2d8e5b40-da1f-47de-85b0-ee05a0200c0c","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:06.141Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"2d8e5b40-da1f-47de-85b0-ee05a0200c0c","keyPrefix":"sk-oai-1VI1JQcYuFNu...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:33:06 | 201 | 1.569603ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:33:06 | 200 | 412.27µs | 34.228.250.194 | GET "/v1/api-keys/2d8e5b40-da1f-47de-85b0-ee05a0200c0c" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:06.219Z","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":"9ccb9ce1-0a69-4eaf-b141-df86b1b69dcc","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:06.219Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"9ccb9ce1-0a69-4eaf-b141-df86b1b69dcc","keyPrefix":"sk-oai-4VETsXbnCgJO...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:33:06 | 201 | 1.94977ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:06.252Z","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":"aa2d4f82-5a0c-4610-a8f2-cb0108a87c75","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:06.252Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"aa2d4f82-5a0c-4610-a8f2-cb0108a87c75","keyPrefix":"sk-oai-144W43VhdkRt...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:33:06 | 201 | 1.610262ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:33:06 | 200 | 4.928374ms | 34.228.250.194 | POST "/v1/api-keys/search" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:33:06 | 200 | 471.633µs | 34.228.250.194 | POST "/v1/api-keys/search" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:06.374Z","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":"3f209045-9755-418c-8f69-f46ec6b2423f","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:06.374Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"3f209045-9755-418c-8f69-f46ec6b2423f","keyPrefix":"sk-oai-HVXMmxcuoZPD...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:33:06 | 201 | 1.619685ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:06.406Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"3f209045-9755-418c-8f69-f46ec6b2423f"} {"level":"info","timestamp":"2026-06-09T15:33:06.407Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"3f209045-9755-418c-8f69-f46ec6b2423f","revokedBy":"system:serviceaccount:default:tester-regular-user"} [GIN] 2026/06/09 - 15:33:06 | 200 | 1.891172ms | 34.228.250.194 | DELETE "/v1/api-keys/3f209045-9755-418c-8f69-f46ec6b2423f" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:33:06 | 200 | 367.717µs | 34.228.250.194 | GET "/v1/api-keys/3f209045-9755-418c-8f69-f46ec6b2423f" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:06.499Z","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":"4f2b1c7f-b673-45cb-a6cd-b47020ade29d","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:06.499Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"4f2b1c7f-b673-45cb-a6cd-b47020ade29d","keyPrefix":"sk-oai-1cob854rLV5h...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:33:06 | 201 | 1.583186ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:33:06 | 200 | 262.966µs | 34.228.250.194 | GET "/v1/api-keys/4f2b1c7f-b673-45cb-a6cd-b47020ade29d" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:33:06 | 200 | 3.225376ms | 34.228.250.194 | POST "/v1/api-keys/search" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:06.614Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"4f2b1c7f-b673-45cb-a6cd-b47020ade29d"} {"level":"info","timestamp":"2026-06-09T15:33:06.614Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"4f2b1c7f-b673-45cb-a6cd-b47020ade29d","revokedBy":"system:serviceaccount:maas-admin:tester-admin-user"} [GIN] 2026/06/09 - 15:33:06 | 200 | 1.717463ms | 34.228.250.194 | DELETE "/v1/api-keys/4f2b1c7f-b673-45cb-a6cd-b47020ade29d" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:06.654Z","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":"38f0583b-a524-444f-a96a-81d175af745c","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:06.654Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"38f0583b-a524-444f-a96a-81d175af745c","keyPrefix":"sk-oai-1RrfomrO7Kki...","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 - 15:33:06 | 201 | 1.53287ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"warn","timestamp":"2026-06-09T15:33:06.685Z","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":"38f0583b-a524-444f-a96a-81d175af745c"} [GIN] 2026/06/09 - 15:33:06 | 404 | 408.702µs | 34.228.250.194 | GET "/v1/api-keys/38f0583b-a524-444f-a96a-81d175af745c" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"warn","timestamp":"2026-06-09T15:33:06.716Z","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":"38f0583b-a524-444f-a96a-81d175af745c"} [GIN] 2026/06/09 - 15:33:06 | 404 | 334.261µs | 34.228.250.194 | DELETE "/v1/api-keys/38f0583b-a524-444f-a96a-81d175af745c" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:06.753Z","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":"8d439023-f99d-4234-b276-26dc7a0c60c2","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:06.753Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"8d439023-f99d-4234-b276-26dc7a0c60c2","keyPrefix":"sk-oai-2ESqEAyHrJdf...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:33:06 | 201 | 1.607088ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:06.785Z","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":"a18a6f45-e45b-44ed-8e9c-80afb2a162a8","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:06.785Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"a18a6f45-e45b-44ed-8e9c-80afb2a162a8","keyPrefix":"sk-oai-iU7TeqhfHUNr...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:33:06 | 201 | 1.555778ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:06.819Z","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":"5b078fff-9bb8-4e8e-ab89-81a320c2251c","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:06.819Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"5b078fff-9bb8-4e8e-ab89-81a320c2251c","keyPrefix":"sk-oai-1RxnlT7TfgI8...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:33:06 | 201 | 1.608813ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:33:06 | 200 | 328.274µs | 34.228.250.194 | GET "/v1/api-keys/8d439023-f99d-4234-b276-26dc7a0c60c2" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:06.903Z","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-09T15:33:06.903Z","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 - 15:33:06 | 200 | 2.062698ms | 34.228.250.194 | POST "/v1/api-keys/bulk-revoke" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:33:06 | 200 | 333.431µs | 34.228.250.194 | GET "/v1/api-keys/8d439023-f99d-4234-b276-26dc7a0c60c2" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:33:06 | 200 | 311.205µs | 34.228.250.194 | GET "/v1/api-keys/a18a6f45-e45b-44ed-8e9c-80afb2a162a8" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:33:06 | 200 | 276.672µs | 34.228.250.194 | GET "/v1/api-keys/5b078fff-9bb8-4e8e-ab89-81a320c2251c" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"warn","timestamp":"2026-06-09T15:33:07.049Z","caller":"api_keys/handler.go:508","message":"Unauthorized bulk revoke attempt","requestingUser":"system:serviceaccount:default:tester-regular-user","targetUser":"someotheruser"} [GIN] 2026/06/09 - 15:33:07 | 403 | 112.068µs | 34.228.250.194 | POST "/v1/api-keys/bulk-revoke" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:07.085Z","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":"fad4fb9f-0b0a-4463-bf8a-511abffb4bfb","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:07.085Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"fad4fb9f-0b0a-4463-bf8a-511abffb4bfb","keyPrefix":"sk-oai-iJ2sTtwkybcP...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:33:07 | 201 | 1.517795ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:33:07 | 200 | 272.928µs | 34.228.250.194 | GET "/v1/api-keys/fad4fb9f-0b0a-4463-bf8a-511abffb4bfb" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:07.147Z","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-09T15:33:07.148Z","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 - 15:33:07 | 200 | 1.580253ms | 34.228.250.194 | POST "/v1/api-keys/bulk-revoke" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:07.188Z","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":"f8114b7e-e892-4aa5-b706-beeb98c447c9","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:07.188Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"f8114b7e-e892-4aa5-b706-beeb98c447c9","keyPrefix":"sk-oai-zWdRWVNUGdCP...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:33:07 | 201 | 1.619776ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:07.221Z","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":"ff15def5-4e81-4b18-97ae-49403c6d72c5","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:07.221Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"ff15def5-4e81-4b18-97ae-49403c6d72c5","keyPrefix":"sk-oai-1udnelGUC9je...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:33:07 | 201 | 1.473498ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"error","timestamp":"2026-06-09T15:33:07.255Z","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 - 15:33:07 | 400 | 162.947µs | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:07.290Z","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":"49ffb3de-a31f-4423-babd-39253e1932cc","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:07.290Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"49ffb3de-a31f-4423-babd-39253e1932cc","keyPrefix":"sk-oai-1NzEtFcGQQLz...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:33:07 | 201 | 1.62821ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:07.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":"f537ae73-2d64-43aa-b83d-8fa3b67e9644","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:07.322Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"f537ae73-2d64-43aa-b83d-8fa3b67e9644","keyPrefix":"sk-oai-kqlXIvZS8TFl...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:33:07 | 201 | 1.535311ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:07.355Z","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":"dab04cc6-e6b3-4ff7-81b3-283d0bb43dab","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:07.356Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"dab04cc6-e6b3-4ff7-81b3-283d0bb43dab","keyPrefix":"sk-oai-RGnwkzwpXCMI...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:33:07 | 201 | 1.623034ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:33:08 | 200 | 783.983679ms | 34.228.250.194 | GET "/v1/models" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:33:08 | 200 | 467.255µs | 10.134.0.49 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 15:33:08 | 200 | 235.874µs | 10.134.0.49 | POST "/internal/v1/subscriptions/select" [GIN] 2026/06/09 - 15:33:08 | 200 | 65.042µs | 10.134.0.49 | POST "/internal/v1/api-keys/validate" {"level":"info","timestamp":"2026-06-09T15:33:08.306Z","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":"a1b95a2d-6c87-4b2f-940c-dcbd0a2aff56","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:08.306Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"a1b95a2d-6c87-4b2f-940c-dcbd0a2aff56","keyPrefix":"sk-oai-Q60iroh5uyVF...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:33:08 | 201 | 1.572082ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:33:08 | 200 | 401.764µs | 10.134.0.49 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 15:33:08 | 200 | 152.022µs | 10.134.0.49 | POST "/internal/v1/subscriptions/select" {"level":"info","timestamp":"2026-06-09T15:33:08.368Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"a1b95a2d-6c87-4b2f-940c-dcbd0a2aff56"} {"level":"info","timestamp":"2026-06-09T15:33:08.368Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"a1b95a2d-6c87-4b2f-940c-dcbd0a2aff56","revokedBy":"system:serviceaccount:default:tester-regular-user"} [GIN] 2026/06/09 - 15:33:08 | 200 | 1.736903ms | 34.228.250.194 | DELETE "/v1/api-keys/a1b95a2d-6c87-4b2f-940c-dcbd0a2aff56" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:33:10 | 200 | 41.77µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:33:10 | 200 | 558.324µs | 10.134.0.49 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 15:33:10 | 200 | 399.152µs | 10.134.0.49 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 15:33:10 | 200 | 145.919µs | 10.134.0.49 | POST "/internal/v1/subscriptions/select" {"level":"info","timestamp":"2026-06-09T15:33:10.465Z","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":"af59578b-a43b-4ffd-9f66-570fd7f69898","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:10.465Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"af59578b-a43b-4ffd-9f66-570fd7f69898","keyPrefix":"sk-oai-iaFHTrXPScs4...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:33:10 | 201 | 1.524615ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:10.497Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"af59578b-a43b-4ffd-9f66-570fd7f69898"} {"level":"info","timestamp":"2026-06-09T15:33:10.498Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"af59578b-a43b-4ffd-9f66-570fd7f69898","revokedBy":"system:serviceaccount:default:tester-regular-user"} [GIN] 2026/06/09 - 15:33:10 | 200 | 1.702349ms | 34.228.250.194 | DELETE "/v1/api-keys/af59578b-a43b-4ffd-9f66-570fd7f69898" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:33:10 | 404 | 469.586µs | 34.228.250.194 | DELETE "/v1/api-keys/af59578b-a43b-4ffd-9f66-570fd7f69898" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:33:10 | 404 | 257.34µs | 34.228.250.194 | DELETE "/v1/api-keys/nonexistent-uuid-12345" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:10.595Z","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":"578ebb0c-55b9-431c-b0ba-130a267fc01e","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:10.595Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"578ebb0c-55b9-431c-b0ba-130a267fc01e","keyPrefix":"sk-oai-1RavYzfoorCm...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:33:10 | 201 | 1.64953ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:10.625Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"578ebb0c-55b9-431c-b0ba-130a267fc01e"} {"level":"info","timestamp":"2026-06-09T15:33:10.625Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"578ebb0c-55b9-431c-b0ba-130a267fc01e","revokedBy":"system:serviceaccount:default:tester-regular-user"} [GIN] 2026/06/09 - 15:33:10 | 200 | 1.688588ms | 34.228.250.194 | DELETE "/v1/api-keys/578ebb0c-55b9-431c-b0ba-130a267fc01e" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:10.656Z","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":"edd82c92-33d2-4a1b-96e5-467b448b7913","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:10.656Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"edd82c92-33d2-4a1b-96e5-467b448b7913","keyPrefix":"sk-oai-uDYiAQhL4Vfm...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:33:10 | 201 | 1.572002ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:33:10 | 200 | 399.289µs | 10.134.0.49 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 15:33:10 | 200 | 325.444µs | 10.134.0.49 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 15:33:10 | 200 | 137.522µs | 10.134.0.49 | POST "/internal/v1/subscriptions/select" {"level":"info","timestamp":"2026-06-09T15:33:10.743Z","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":"4eb55c2d-5e82-47b0-a1b3-1ef4fa93d64c","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:10.743Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"4eb55c2d-5e82-47b0-a1b3-1ef4fa93d64c","keyPrefix":"sk-oai-1DYbt8xqrPCH...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:33:10 | 201 | 1.628978ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:10.775Z","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":"1dc3fa73-03df-408e-a821-0ce4abfd4489","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:10.775Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"1dc3fa73-03df-408e-a821-0ce4abfd4489","keyPrefix":"sk-oai-1KkshABtDhcl...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:33:10 | 201 | 1.545756ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:10.807Z","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":"3222fe0d-27cc-4ead-9f42-9e03626cf312","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:10.807Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"3222fe0d-27cc-4ead-9f42-9e03626cf312","keyPrefix":"sk-oai-1RnVRdRiTFf0...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:33:10 | 201 | 1.582817ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:10.840Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"4eb55c2d-5e82-47b0-a1b3-1ef4fa93d64c"} {"level":"info","timestamp":"2026-06-09T15:33:10.840Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"4eb55c2d-5e82-47b0-a1b3-1ef4fa93d64c","revokedBy":"system:serviceaccount:default:tester-regular-user"} [GIN] 2026/06/09 - 15:33:10 | 200 | 1.754058ms | 34.228.250.194 | DELETE "/v1/api-keys/4eb55c2d-5e82-47b0-a1b3-1ef4fa93d64c" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:10.872Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"1dc3fa73-03df-408e-a821-0ce4abfd4489"} {"level":"info","timestamp":"2026-06-09T15:33:10.872Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"1dc3fa73-03df-408e-a821-0ce4abfd4489","revokedBy":"system:serviceaccount:default:tester-regular-user"} [GIN] 2026/06/09 - 15:33:10 | 200 | 1.832293ms | 34.228.250.194 | DELETE "/v1/api-keys/1dc3fa73-03df-408e-a821-0ce4abfd4489" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:10.906Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"3222fe0d-27cc-4ead-9f42-9e03626cf312"} {"level":"info","timestamp":"2026-06-09T15:33:10.906Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"3222fe0d-27cc-4ead-9f42-9e03626cf312","revokedBy":"system:serviceaccount:default:tester-regular-user"} [GIN] 2026/06/09 - 15:33:10 | 200 | 1.722346ms | 34.228.250.194 | DELETE "/v1/api-keys/3222fe0d-27cc-4ead-9f42-9e03626cf312" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:10.943Z","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":"02dfe4e2-24c9-4c54-87e5-78de78253fb7","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:10.943Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"02dfe4e2-24c9-4c54-87e5-78de78253fb7","keyPrefix":"sk-oai-943sCp60iq6g...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:33:10 | 201 | 1.565099ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:10.977Z","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":"c8b1c251-bdea-4a82-906c-daccd8e2586c","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:10.977Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"c8b1c251-bdea-4a82-906c-daccd8e2586c","keyPrefix":"sk-oai-LuCMfjyY8bzy...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:33:10 | 201 | 1.659011ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:11.012Z","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":"56fca173-419e-427e-9561-006c2de3c3d8","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:11.012Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"56fca173-419e-427e-9561-006c2de3c3d8","keyPrefix":"sk-oai-C55desW1xrGW...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:33:11 | 201 | 1.609771ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:33:11 | 200 | 339.008µs | 10.134.0.49 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 15:33:11 | 200 | 151.961µs | 10.134.0.49 | POST "/internal/v1/subscriptions/select" {"level":"info","timestamp":"2026-06-09T15:33:11.077Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"02dfe4e2-24c9-4c54-87e5-78de78253fb7"} {"level":"info","timestamp":"2026-06-09T15:33:11.077Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"02dfe4e2-24c9-4c54-87e5-78de78253fb7","revokedBy":"system:serviceaccount:default:tester-regular-user"} [GIN] 2026/06/09 - 15:33:11 | 200 | 1.785638ms | 34.228.250.194 | DELETE "/v1/api-keys/02dfe4e2-24c9-4c54-87e5-78de78253fb7" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:11.111Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"c8b1c251-bdea-4a82-906c-daccd8e2586c"} {"level":"info","timestamp":"2026-06-09T15:33:11.111Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"c8b1c251-bdea-4a82-906c-daccd8e2586c","revokedBy":"system:serviceaccount:default:tester-regular-user"} [GIN] 2026/06/09 - 15:33:11 | 200 | 1.775387ms | 34.228.250.194 | DELETE "/v1/api-keys/c8b1c251-bdea-4a82-906c-daccd8e2586c" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:11.145Z","caller":"api_keys/store_postgres.go:468","message":"Revoked API key","id":"56fca173-419e-427e-9561-006c2de3c3d8"} {"level":"info","timestamp":"2026-06-09T15:33:11.145Z","caller":"api_keys/handler.go:326","message":"Revoked API key","keyId":"56fca173-419e-427e-9561-006c2de3c3d8","revokedBy":"system:serviceaccount:default:tester-regular-user"} [GIN] 2026/06/09 - 15:33:11 | 200 | 1.668962ms | 34.228.250.194 | DELETE "/v1/api-keys/56fca173-419e-427e-9561-006c2de3c3d8" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:33:11 | 200 | 318.793µs | 10.134.0.49 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 15:33:11 | 200 | 328.302µs | 10.134.0.49 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 15:33:11 | 200 | 315.175µs | 10.134.0.49 | POST "/internal/v1/api-keys/validate" {"level":"info","timestamp":"2026-06-09T15:33:11.499Z","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":"2e1eb80d-82e0-4905-8afe-505306057ba3","ephemeral":true} {"level":"info","timestamp":"2026-06-09T15:33:11.499Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"2e1eb80d-82e0-4905-8afe-505306057ba3","keyPrefix":"sk-oai-1J9aAP5N5S5L...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":true} [GIN] 2026/06/09 - 15:33:11 | 201 | 1.487245ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:33:11 | 200 | 3.609631ms | 34.228.250.194 | POST "/v1/api-keys/search" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:33:11 | 200 | 539.927µs | 34.228.250.194 | POST "/v1/api-keys/search" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:33:11 | 200 | 40.611µs | 10.132.0.2 | GET "/health" {"level":"info","timestamp":"2026-06-09T15:33:11.614Z","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":"c94b72f7-7900-4e57-b322-5fa0d74d3502","ephemeral":true} {"level":"info","timestamp":"2026-06-09T15:33:11.614Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"c94b72f7-7900-4e57-b322-5fa0d74d3502","keyPrefix":"sk-oai-zyqjCxL5HfR6...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":true} [GIN] 2026/06/09 - 15:33:11 | 201 | 1.547673ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:12.107Z","caller":"api_keys/service.go:305","message":"Ephemeral key cleanup completed","deletedCount":0} [GIN] 2026/06/09 - 15:33:12 | 200 | 497.712µs | ::1 | POST "/internal/v1/api-keys/cleanup" [GIN] 2026/06/09 - 15:33:12 | 200 | 642.105µs | 34.228.250.194 | GET "/v1/api-keys/c94b72f7-7900-4e57-b322-5fa0d74d3502" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent {"level":"info","timestamp":"2026-06-09T15:33:12.916Z","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":"9fc0ac3a-1698-413a-baf2-fb3e2e6f5269","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:12.916Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"9fc0ac3a-1698-413a-baf2-fb3e2e6f5269","keyPrefix":"sk-oai-1eqt6cGk2Afo...","username":"system:serviceaccount:llm:e2e-apikey-active-sa","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:llm","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:33:12 | 201 | 1.748855ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:33:15 | 200 | 33.062µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:33:20 | 200 | 35.793µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:33:21 | 200 | 43.345µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:33:25 | 200 | 34.664µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:33:30 | 200 | 57.9µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:33:31 | 200 | 34.062µs | 10.132.0.2 | GET "/health" {"level":"info","timestamp":"2026-06-09T15:33:32.162Z","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":"800e5829-e926-4394-b510-0dba519ef492","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:33:32.162Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"800e5829-e926-4394-b510-0dba519ef492","keyPrefix":"sk-oai-LLJAwTAG2kKC...","username":"system:serviceaccount:llm:e2e-apikey-degraded-sa","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:llm","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:33:32 | 201 | 1.642236ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:33:35 | 200 | 35.606µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:33:40 | 200 | 35.938µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:33:41 | 200 | 35.43µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:33:45 | 200 | 35.351µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:33:50 | 200 | 35.717µs | 10.132.0.2 | GET "/health" {"level":"warn","timestamp":"2026-06-09T15:33:51.486Z","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-09T15:33:51.486Z","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 - 15:33:51 | 403 | 307.423µs | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:33:51 | 200 | 32.213µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:33:55 | 200 | 45.331µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:34:00 | 200 | 33.943µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:34:01 | 200 | 37.467µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:34:05 | 200 | 36.893µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:34:10 | 200 | 36.846µs | 10.132.0.2 | GET "/health" {"level":"info","timestamp":"2026-06-09T15:34:10.871Z","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":"e2b2a3fd-bb97-41bb-8dcb-ce4f4e805dc7","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:34:10.871Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"e2b2a3fd-bb97-41bb-8dcb-ce4f4e805dc7","keyPrefix":"sk-oai-1PE52Lu7ppVJ...","username":"system:serviceaccount:llm:e2e-apikey-pending-sa","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:llm","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:34:10 | 201 | 1.956485ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:34:11 | 200 | 41.378µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:34:15 | 200 | 37.97µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:34:20 | 200 | 96.975µs | 10.132.0.2 | GET "/health" {"level":"warn","timestamp":"2026-06-09T15:34:21.532Z","caller":"api_keys/service.go:130","message":"Subscription selection failed when creating API key","user":"system:serviceaccount:llm:e2e-apikey-unreconciled-sa","requestedSubscription":"e2e-apikey-unreconciled-sub","error":"requested model is unhealthy in subscription"} {"level":"error","timestamp":"2026-06-09T15:34:21.532Z","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 - 15:34:21 | 400 | 293.248µs | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:34:21 | 200 | 41.433µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:34:25 | 200 | 32.716µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:34:30 | 200 | 34.967µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:34:31 | 200 | 35.996µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:34:35 | 200 | 38.225µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:34:40 | 200 | 44.206µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:34:41 | 200 | 34.889µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:34:45 | 200 | 64.15µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:34:50 | 200 | 35.087µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:34:51 | 200 | 38.169µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:34:55 | 200 | 33.881µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:35:00 | 200 | 35.189µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:35:01 | 200 | 33.217µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:35:05 | 200 | 36.008µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:35:10 | 200 | 33.142µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:35:11 | 200 | 34.392µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:35:15 | 200 | 35.946µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:35:20 | 200 | 35.534µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:35:21 | 200 | 37.846µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:35:25 | 200 | 53.47µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:35:30 | 200 | 34.858µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:35:31 | 200 | 35.047µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:35:35 | 200 | 35.83µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:35:40 | 200 | 35.022µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:35:41 | 200 | 56.01µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:35:45 | 200 | 34.683µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:35:50 | 200 | 36.596µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:35:51 | 200 | 44.067µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:35:55 | 200 | 34.578µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:36:00 | 200 | 35.979µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:36:01 | 200 | 42.787µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:36:05 | 200 | 36.113µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:36:10 | 200 | 34.764µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:36:11 | 200 | 35.193µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:36:15 | 200 | 37.003µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:36:20 | 200 | 36.929µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:36:21 | 200 | 33.809µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:36:25 | 200 | 63.553µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:36:30 | 200 | 38.859µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:36:31 | 200 | 41.801µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:36:35 | 200 | 35.733µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:36:40 | 200 | 37.206µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:36:41 | 200 | 36.772µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:36:45 | 200 | 37.167µs | 10.132.0.2 | GET "/health" {"level":"info","timestamp":"2026-06-09T15:36:48.696Z","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":"a87a5557-f16e-40ef-84d0-09f1c606b53e","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:36:48.696Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"a87a5557-f16e-40ef-84d0-09f1c606b53e","keyPrefix":"sk-oai-1P9WmVzQ5BLM...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:36:48 | 201 | 10.618292ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:36:48 | 200 | 1.060032ms | 10.134.0.49 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 15:36:48 | 200 | 162.978µs | 10.134.0.49 | POST "/internal/v1/subscriptions/select" {"level":"info","timestamp":"2026-06-09T15:36:48.786Z","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":"45f6403c-70b1-43a6-89b3-d981997f1f40","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:36:48.786Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"45f6403c-70b1-43a6-89b3-d981997f1f40","keyPrefix":"sk-oai-vjKUhom6z53y...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:36:48 | 201 | 1.656492ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:36:48 | 200 | 441.038µs | 10.134.0.49 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 15:36:48 | 200 | 246.903µs | 10.134.0.49 | POST "/internal/v1/subscriptions/select" {"level":"info","timestamp":"2026-06-09T15:36:48.859Z","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":"0402a86e-ece8-4d3f-951c-05d77e2f2ee1","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:36:48.859Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"0402a86e-ece8-4d3f-951c-05d77e2f2ee1","keyPrefix":"sk-oai-ApD38Y3s06lS...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:36:48 | 201 | 1.665517ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:36:50 | 200 | 41.849µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:36:51 | 200 | 41.944µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:36:53 | 200 | 2.186709ms | 10.134.0.49 | POST "/internal/v1/api-keys/validate" {"level":"info","timestamp":"2026-06-09T15:36:53.952Z","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":"2dd4555e-a186-480b-9dbe-94e874dbd504","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:36:53.952Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"2dd4555e-a186-480b-9dbe-94e874dbd504","keyPrefix":"sk-oai-1H1h6jAA6cjo...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:36:53 | 201 | 1.665032ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:36:53 | 200 | 463.933µs | 10.134.0.49 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 15:36:53 | 200 | 240.28µs | 10.134.0.49 | POST "/internal/v1/subscriptions/select" [GIN] 2026/06/09 - 15:36:55 | 200 | 51.743µs | 10.132.0.2 | GET "/health" {"level":"info","timestamp":"2026-06-09T15:36:58.724Z","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":"d0aae1ac-0708-46d7-94ad-9c1b66f486a8","ephemeral":false} {"level":"info","timestamp":"2026-06-09T15:36:58.724Z","caller":"api_keys/handler.go:225","message":"Created API key","keyId":"d0aae1ac-0708-46d7-94ad-9c1b66f486a8","keyPrefix":"sk-oai-ysILm3BOeq5K...","username":"system:serviceaccount:default:tester-regular-user","groups":["system:authenticated","system:serviceaccounts","system:serviceaccounts:default","system:authenticated"],"ephemeral":false} [GIN] 2026/06/09 - 15:36:58 | 201 | 1.706817ms | 34.228.250.194 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/09 - 15:36:58 | 200 | 429.201µs | 10.134.0.49 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 15:36:58 | 200 | 126.66µs | 10.134.0.49 | POST "/internal/v1/subscriptions/select" [GIN] 2026/06/09 - 15:36:58 | 200 | 422.106µs | 10.134.0.49 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 15:36:58 | 200 | 144.886µs | 10.134.0.49 | POST "/internal/v1/subscriptions/select" [GIN] 2026/06/09 - 15:36:58 | 200 | 331.181µs | 10.134.0.49 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 15:36:58 | 200 | 161.119µs | 10.134.0.49 | POST "/internal/v1/subscriptions/select" [GIN] 2026/06/09 - 15:36:58 | 200 | 344.426µs | 10.134.0.49 | POST "/internal/v1/api-keys/validate" [GIN] 2026/06/09 - 15:36:58 | 200 | 223.086µs | 10.134.0.49 | POST "/internal/v1/subscriptions/select" [GIN] 2026/06/09 - 15:37:00 | 200 | 41.581µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:37:01 | 200 | 39.678µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:37:05 | 200 | 38.471µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:37:10 | 200 | 54.246µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:37:11 | 200 | 40.875µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/09 - 15:37:15 | 200 | 38.348µs | 10.132.0.2 | GET "/health"