{"level":"info","timestamp":"2026-04-21T02:53:00.135Z","caller":"cmd/main.go:60","message":"Loading database connection URL from secret..."} {"level":"info","timestamp":"2026-04-21T02:53:00.147Z","caller":"cmd/main.go:136","message":"Connecting to PostgreSQL database..."} {"level":"info","timestamp":"2026-04-21T02:53:00.231Z","caller":"api_keys/db_driver.go:90","message":"Database schema applied","version":3} {"level":"info","timestamp":"2026-04-21T02:53:00.231Z","caller":"api_keys/db_driver.go:57","message":"Connected to PostgreSQL database (schema applied)"} {"level":"info","timestamp":"2026-04-21T02:53:00.333Z","caller":"cmd/main.go:104","message":"Server starting","address":":8443","secure":true} [GIN] 2026/04/21 - 02:53:06 | 200 | 48.856µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:53:11 | 200 | 36.073µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:53:16 | 200 | 27.084µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:53:21 | 200 | 26.214µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:53:26 | 200 | 26.901µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:53:31 | 200 | 28.298µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:53:36 | 200 | 51.223µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:53:38 | 200 | 35.144µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:53:41 | 200 | 30.864µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:53:46 | 200 | 26.094µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:53:48 | 200 | 33.791µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:53:51 | 200 | 33.808µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:53:56 | 200 | 32.662µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:53:58 | 200 | 32.271µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:54:01 | 200 | 26.072µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:54:06 | 200 | 38.743µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:54:08 | 200 | 23.642µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:54:11 | 200 | 32.278µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:54:16 | 200 | 27.021µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:54:18 | 200 | 25.363µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:54:21 | 200 | 24.775µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:54:26 | 200 | 28.101µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:54:28 | 200 | 28.341µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:54:31 | 200 | 25.895µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:54:36 | 200 | 27.066µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:54:38 | 200 | 25.932µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:54:41 | 200 | 43.475µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:54:46 | 200 | 26.848µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:54:48 | 200 | 26.399µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:54:51 | 200 | 29.861µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:54:56 | 200 | 33.418µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:54:58 | 200 | 27.393µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:55:01 | 200 | 30.463µs | 10.134.0.2 | GET "/health" {"level":"info","timestamp":"2026-04-21T02:55:06.239Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:maas-admin:tester-admin-user","groups":["system:serviceaccounts","system:serviceaccounts:maas-admin","system:authenticated"],"id":"f8f95de4-d951-4239-aa9a-86a9862d87b2","ephemeral":false} {"level":"info","timestamp":"2026-04-21T02:55:06.239Z","caller":"api_keys/handler.go:222","message":"Created API key","keyId":"f8f95de4-d951-4239-aa9a-86a9862d87b2","keyPrefix":"sk-oai-11eupuTVlzzd...","username":"system:serviceaccount:maas-admin:tester-admin-user","groups":["system:serviceaccounts","system:serviceaccounts:maas-admin","system:authenticated"],"ephemeral":false} [GIN] 2026/04/21 - 02:55:06 | 201 | 10.82168ms | 100.64.0.3 | POST "/v1/api-keys" [GIN] 2026/04/21 - 02:55:06 | 200 | 1.346154ms | 10.133.0.35 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:55:06 | 200 | 605.176µs | 10.133.0.35 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:55:06 | 200 | 203.823µs | 10.133.0.35 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:55:06 | 200 | 35.81074ms | 100.64.0.2 | GET "/v1/models" [GIN] 2026/04/21 - 02:55:06 | 200 | 598.831µs | 10.133.0.35 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:55:06 | 200 | 108.993µs | 10.133.0.35 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:55:06 | 200 | 519.385µs | 10.133.0.35 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:55:06 | 200 | 120.484µs | 10.133.0.35 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:55:06 | 200 | 510.044µs | 10.133.0.35 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:55:06 | 200 | 103.848µs | 10.133.0.35 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:55:06 | 200 | 512.378µs | 10.133.0.35 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:55:06 | 200 | 86.445µs | 10.133.0.35 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:55:06 | 200 | 388.822µs | 10.133.0.35 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:55:06 | 200 | 89.057µs | 10.133.0.35 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:55:06 | 200 | 429.903µs | 10.133.0.35 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:55:06 | 200 | 76.509µs | 10.133.0.35 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:55:06 | 200 | 25.79µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:55:06 | 200 | 411.952µs | 10.133.0.35 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:55:06 | 200 | 95.122µs | 10.133.0.35 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:55:06 | 200 | 414.754µs | 10.133.0.35 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:55:06 | 200 | 97.028µs | 10.133.0.35 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:55:06 | 200 | 377.715µs | 10.133.0.35 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:55:06 | 200 | 80.849µs | 10.133.0.35 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:55:06 | 200 | 381.579µs | 10.133.0.35 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:55:06 | 200 | 80.402µs | 10.133.0.35 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:55:06 | 200 | 380.287µs | 10.133.0.35 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:55:06 | 200 | 78.212µs | 10.133.0.35 | POST "/internal/v1/subscriptions/select" {"level":"info","timestamp":"2026-04-21T02:55:06.888Z","caller":"api_keys/store_postgres.go:460","message":"Revoked API key","id":"f8f95de4-d951-4239-aa9a-86a9862d87b2"} {"level":"info","timestamp":"2026-04-21T02:55:06.888Z","caller":"api_keys/handler.go:317","message":"Revoked API key","keyId":"f8f95de4-d951-4239-aa9a-86a9862d87b2","revokedBy":"system:serviceaccount:maas-admin:tester-admin-user"} [GIN] 2026/04/21 - 02:55:06 | 200 | 2.901528ms | 100.64.0.3 | DELETE "/v1/api-keys/f8f95de4-d951-4239-aa9a-86a9862d87b2" [GIN] 2026/04/21 - 02:55:08 | 200 | 24.742µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:55:11 | 200 | 26.601µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:55:16 | 200 | 26.416µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:55:18 | 200 | 25.966µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:55:21 | 200 | 35.717µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:55:26 | 200 | 26.585µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:55:28 | 200 | 31.035µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:55:31 | 200 | 29.204µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:55:36 | 200 | 26.557µs | 10.134.0.2 | GET "/health" [GIN] 2026/04/21 - 02:55:38 | 200 | 29.468µs | 10.134.0.2 | GET "/health" {"level":"info","timestamp":"2026-04-21T02:55:39.141Z","caller":"api_keys/service.go:150","message":"Created API key","user":"system:serviceaccount:maas-admin:tester-admin-user","groups":["system:serviceaccounts","system:serviceaccounts:maas-admin","system:authenticated"],"id":"e04d93da-94ea-4b39-9ee9-1d862a326738","ephemeral":false} {"level":"info","timestamp":"2026-04-21T02:55:39.141Z","caller":"api_keys/handler.go:222","message":"Created API key","keyId":"e04d93da-94ea-4b39-9ee9-1d862a326738","keyPrefix":"sk-oai-131vFs5K2mnV...","username":"system:serviceaccount:maas-admin:tester-admin-user","groups":["system:serviceaccounts","system:serviceaccounts:maas-admin","system:authenticated"],"ephemeral":false} [GIN] 2026/04/21 - 02:55:39 | 201 | 1.944787ms | 100.64.0.4 | POST "/v1/api-keys" [GIN] 2026/04/21 - 02:55:39 | 200 | 497.358µs | 10.133.0.35 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:55:39 | 200 | 404.018µs | 10.133.0.35 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:55:39 | 200 | 107.738µs | 10.133.0.35 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:55:39 | 200 | 8.79664ms | 100.64.0.3 | GET "/v1/models" [GIN] 2026/04/21 - 02:55:39 | 200 | 389.243µs | 10.133.0.35 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:55:39 | 200 | 114.211µs | 10.133.0.35 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:55:39 | 200 | 384.684µs | 10.133.0.35 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:55:39 | 200 | 91.832µs | 10.133.0.35 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:55:39 | 200 | 373.143µs | 10.133.0.35 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:55:39 | 200 | 88.867µs | 10.133.0.35 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:55:39 | 200 | 355.495µs | 10.133.0.35 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:55:39 | 200 | 89.373µs | 10.133.0.35 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:55:39 | 200 | 381.39µs | 10.133.0.35 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:55:39 | 200 | 95.266µs | 10.133.0.35 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:55:39 | 200 | 396.764µs | 10.133.0.35 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:55:39 | 200 | 76.602µs | 10.133.0.35 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:55:39 | 200 | 421.3µs | 10.133.0.35 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:55:39 | 200 | 98.929µs | 10.133.0.35 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:55:39 | 200 | 354.136µs | 10.133.0.35 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:55:39 | 200 | 81.053µs | 10.133.0.35 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:55:39 | 200 | 385.761µs | 10.133.0.35 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:55:39 | 200 | 83.887µs | 10.133.0.35 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:55:39 | 200 | 426.031µs | 10.133.0.35 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:55:39 | 200 | 116.142µs | 10.133.0.35 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:55:39 | 200 | 402.229µs | 10.133.0.35 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:55:39 | 200 | 101.174µs | 10.133.0.35 | POST "/internal/v1/subscriptions/select" {"level":"info","timestamp":"2026-04-21T02:55:39.625Z","caller":"api_keys/store_postgres.go:460","message":"Revoked API key","id":"e04d93da-94ea-4b39-9ee9-1d862a326738"} {"level":"info","timestamp":"2026-04-21T02:55:39.625Z","caller":"api_keys/handler.go:317","message":"Revoked API key","keyId":"e04d93da-94ea-4b39-9ee9-1d862a326738","revokedBy":"system:serviceaccount:maas-admin:tester-admin-user"} [GIN] 2026/04/21 - 02:55:39 | 200 | 2.257036ms | 100.64.0.3 | DELETE "/v1/api-keys/e04d93da-94ea-4b39-9ee9-1d862a326738" [GIN] 2026/04/21 - 02:55:41 | 200 | 32.452µs | 10.134.0.2 | GET "/health"