{"level":"info","timestamp":"2026-04-21T02:01:27.945Z","caller":"cmd/main.go:60","message":"Loading database connection URL from secret..."} {"level":"info","timestamp":"2026-04-21T02:01:27.958Z","caller":"cmd/main.go:136","message":"Connecting to PostgreSQL database..."} {"level":"info","timestamp":"2026-04-21T02:01:28.044Z","caller":"api_keys/db_driver.go:90","message":"Database schema applied","version":3} {"level":"info","timestamp":"2026-04-21T02:01:28.044Z","caller":"api_keys/db_driver.go:57","message":"Connected to PostgreSQL database (schema applied)"} {"level":"info","timestamp":"2026-04-21T02:01:28.145Z","caller":"cmd/main.go:104","message":"Server starting","address":":8443","secure":true} [GIN] 2026/04/21 - 02:01:34 | 200 | 53.946µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:01:39 | 200 | 38.38µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:01:44 | 200 | 59.373µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:01:49 | 200 | 24.715µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:01:54 | 200 | 28.096µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:01:59 | 200 | 31.091µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:02:04 | 200 | 28.302µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:02:06 | 200 | 27.275µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:02:09 | 200 | 25.893µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:02:14 | 200 | 37.936µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:02:16 | 200 | 24.241µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:02:19 | 200 | 26.736µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:02:24 | 200 | 33.374µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:02:26 | 200 | 35.439µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:02:29 | 200 | 43.023µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:02:34 | 200 | 31.685µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:02:36 | 200 | 34.807µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:02:39 | 200 | 33.994µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:02:44 | 200 | 32.087µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:02:46 | 200 | 34.773µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:02:49 | 200 | 25.522µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:02:54 | 200 | 35.513µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:02:56 | 200 | 35.309µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:02:59 | 200 | 34.995µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:03:04 | 200 | 33.923µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:03:06 | 200 | 32.027µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:03:09 | 200 | 32.412µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:03:14 | 200 | 35.421µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:03:16 | 200 | 35.536µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:03:19 | 200 | 37.277µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:03:24 | 200 | 35.563µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:03:26 | 200 | 41.729µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:03:29 | 200 | 32.042µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:03:34 | 200 | 33.551µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:03:36 | 200 | 32.738µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:03:39 | 200 | 34.016µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:03:44 | 200 | 33.269µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:03:46 | 200 | 33.024µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:03:49 | 200 | 37.651µs | 10.133.0.2 | GET "/health" {"level":"info","timestamp":"2026-04-21T02:03:50.394Z","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":"21124bac-02a9-45d5-9c8c-084b67c7d651","ephemeral":false} {"level":"info","timestamp":"2026-04-21T02:03:50.394Z","caller":"api_keys/handler.go:222","message":"Created API key","keyId":"21124bac-02a9-45d5-9c8c-084b67c7d651","keyPrefix":"sk-oai-1XsrqpDHbUhK...","username":"system:serviceaccount:maas-admin:tester-admin-user","groups":["system:serviceaccounts","system:serviceaccounts:maas-admin","system:authenticated"],"ephemeral":false} [GIN] 2026/04/21 - 02:03:50 | 201 | 11.686454ms | 100.64.0.4 | POST "/v1/api-keys" [GIN] 2026/04/21 - 02:03:50 | 200 | 1.685419ms | 10.133.0.51 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:03:50 | 200 | 585.71µs | 10.133.0.51 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:03:50 | 200 | 193.744µs | 10.133.0.51 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:03:50 | 200 | 33.06378ms | 100.64.0.2 | GET "/v1/models" [GIN] 2026/04/21 - 02:03:50 | 200 | 786.126µs | 10.133.0.51 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:03:50 | 200 | 131.981µs | 10.133.0.51 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:03:50 | 200 | 721.983µs | 10.133.0.51 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:03:50 | 200 | 120.761µs | 10.133.0.51 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:03:50 | 200 | 687.291µs | 10.133.0.51 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:03:50 | 200 | 119.082µs | 10.133.0.51 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:03:50 | 200 | 580.841µs | 10.133.0.51 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:03:50 | 200 | 130.586µs | 10.133.0.51 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:03:50 | 200 | 559.017µs | 10.133.0.51 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:03:50 | 200 | 115.591µs | 10.133.0.51 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:03:50 | 200 | 539.197µs | 10.133.0.51 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:03:50 | 200 | 130.974µs | 10.133.0.51 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:03:50 | 200 | 577.843µs | 10.133.0.51 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:03:50 | 200 | 113.969µs | 10.133.0.51 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:03:50 | 200 | 598.189µs | 10.133.0.51 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:03:50 | 200 | 113.044µs | 10.133.0.51 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:03:50 | 200 | 582.639µs | 10.133.0.51 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:03:50 | 200 | 101.473µs | 10.133.0.51 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:03:50 | 200 | 556.815µs | 10.133.0.51 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:03:50 | 200 | 108.068µs | 10.133.0.51 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:03:50 | 200 | 628.807µs | 10.133.0.51 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:03:50 | 200 | 110.086µs | 10.133.0.51 | POST "/internal/v1/subscriptions/select" {"level":"info","timestamp":"2026-04-21T02:03:51.027Z","caller":"api_keys/store_postgres.go:460","message":"Revoked API key","id":"21124bac-02a9-45d5-9c8c-084b67c7d651"} {"level":"info","timestamp":"2026-04-21T02:03:51.027Z","caller":"api_keys/handler.go:317","message":"Revoked API key","keyId":"21124bac-02a9-45d5-9c8c-084b67c7d651","revokedBy":"system:serviceaccount:maas-admin:tester-admin-user"} [GIN] 2026/04/21 - 02:03:51 | 200 | 3.380421ms | 100.64.0.2 | DELETE "/v1/api-keys/21124bac-02a9-45d5-9c8c-084b67c7d651" [GIN] 2026/04/21 - 02:03:54 | 200 | 34.97µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:03:56 | 200 | 32.203µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:03:59 | 200 | 39.475µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:04:04 | 200 | 41.271µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:04:06 | 200 | 36.98µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:04:09 | 200 | 31.117µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:04:14 | 200 | 38.503µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:04:16 | 200 | 31.901µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:04:19 | 200 | 33.7µs | 10.133.0.2 | GET "/health" {"level":"info","timestamp":"2026-04-21T02:04:23.388Z","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":"434f604a-5e78-403b-b88e-32b1e3a15ab1","ephemeral":false} {"level":"info","timestamp":"2026-04-21T02:04:23.388Z","caller":"api_keys/handler.go:222","message":"Created API key","keyId":"434f604a-5e78-403b-b88e-32b1e3a15ab1","keyPrefix":"sk-oai-IxeLjhPUD4xd...","username":"system:serviceaccount:maas-admin:tester-admin-user","groups":["system:serviceaccounts","system:serviceaccounts:maas-admin","system:authenticated"],"ephemeral":false} [GIN] 2026/04/21 - 02:04:23 | 201 | 2.354118ms | 100.64.0.3 | POST "/v1/api-keys" [GIN] 2026/04/21 - 02:04:23 | 200 | 607.723µs | 10.133.0.51 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:04:23 | 200 | 504.481µs | 10.133.0.51 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:04:23 | 200 | 123.475µs | 10.133.0.51 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:04:23 | 200 | 15.466211ms | 100.64.0.2 | GET "/v1/models" [GIN] 2026/04/21 - 02:04:23 | 200 | 587.081µs | 10.133.0.51 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:04:23 | 200 | 111.107µs | 10.133.0.51 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:04:23 | 200 | 566.932µs | 10.133.0.51 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:04:23 | 200 | 125.29µs | 10.133.0.51 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:04:23 | 200 | 624.682µs | 10.133.0.51 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:04:23 | 200 | 117.679µs | 10.133.0.51 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:04:23 | 200 | 617.241µs | 10.133.0.51 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:04:23 | 200 | 109.835µs | 10.133.0.51 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:04:23 | 200 | 570.643µs | 10.133.0.51 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:04:23 | 200 | 146.665µs | 10.133.0.51 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:04:23 | 200 | 523.614µs | 10.133.0.51 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:04:23 | 200 | 107.386µs | 10.133.0.51 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:04:23 | 200 | 557.309µs | 10.133.0.51 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:04:23 | 200 | 152.294µs | 10.133.0.51 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:04:23 | 200 | 554.742µs | 10.133.0.51 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:04:23 | 200 | 126.167µs | 10.133.0.51 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:04:23 | 200 | 505.82µs | 10.133.0.51 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:04:23 | 200 | 117.932µs | 10.133.0.51 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:04:23 | 200 | 590.025µs | 10.133.0.51 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:04:23 | 200 | 112.566µs | 10.133.0.51 | POST "/internal/v1/subscriptions/select" [GIN] 2026/04/21 - 02:04:23 | 200 | 540.745µs | 10.133.0.51 | POST "/internal/v1/api-keys/validate" [GIN] 2026/04/21 - 02:04:23 | 200 | 162.764µs | 10.133.0.51 | POST "/internal/v1/subscriptions/select" {"level":"info","timestamp":"2026-04-21T02:04:23.926Z","caller":"api_keys/store_postgres.go:460","message":"Revoked API key","id":"434f604a-5e78-403b-b88e-32b1e3a15ab1"} {"level":"info","timestamp":"2026-04-21T02:04:23.926Z","caller":"api_keys/handler.go:317","message":"Revoked API key","keyId":"434f604a-5e78-403b-b88e-32b1e3a15ab1","revokedBy":"system:serviceaccount:maas-admin:tester-admin-user"} [GIN] 2026/04/21 - 02:04:23 | 200 | 2.759191ms | 100.64.0.3 | DELETE "/v1/api-keys/434f604a-5e78-403b-b88e-32b1e3a15ab1" [GIN] 2026/04/21 - 02:04:24 | 200 | 33.116µs | 10.133.0.2 | GET "/health" [GIN] 2026/04/21 - 02:04:26 | 200 | 32.902µs | 10.133.0.2 | GET "/health"