{"level":"info","timestamp":"2026-06-02T19:12:36.544Z","caller":"cmd/main.go:66","message":"Loading database connection URL from secret..."} {"level":"info","timestamp":"2026-06-02T19:12:36.559Z","caller":"cmd/main.go:200","message":"Connecting to PostgreSQL database..."} {"level":"info","timestamp":"2026-06-02T19:12:36.559Z","caller":"cmd/main.go:102","message":"Metrics server starting","address":":9090"} {"level":"info","timestamp":"2026-06-02T19:12:36.682Z","caller":"api_keys/db_driver.go:90","message":"Database schema applied","version":3} {"level":"info","timestamp":"2026-06-02T19:12:36.682Z","caller":"api_keys/db_driver.go:57","message":"Connected to PostgreSQL database (schema applied)"} {"level":"info","timestamp":"2026-06-02T19:12:36.682Z","caller":"cmd/main.go:128","message":"Ephemeral key cleanup enabled","interval":15} {"level":"info","timestamp":"2026-06-02T19:12:36.787Z","caller":"cmd/main.go:221","message":"Resolved gateway internal host for access probes","host":"maas-default-gateway-openshift-default.openshift-ingress.svc.cluster.local"} {"level":"info","timestamp":"2026-06-02T19:12:36.831Z","caller":"cmd/main.go:162","message":"Server starting","address":":8443","secure":true} [GIN] 2026/06/02 - 19:12:42 | 200 | 74.626µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:12:47 | 200 | 51.169µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:12:52 | 200 | 64.488µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:12:57 | 200 | 42.787µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:13:02 | 200 | 74.691µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:13:07 | 200 | 44.563µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:13:12 | 200 | 37.516µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:13:13 | 200 | 36.881µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:13:17 | 200 | 34.325µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:13:22 | 200 | 37.01µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:13:23 | 200 | 33.865µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:13:27 | 200 | 40.682µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:13:32 | 200 | 38.657µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:13:33 | 200 | 41.144µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:13:37 | 200 | 41.438µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:13:42 | 200 | 35.476µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:13:43 | 200 | 34.833µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:13:47 | 200 | 33.94µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:13:52 | 200 | 33.959µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:13:53 | 200 | 31.646µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:13:57 | 200 | 36.517µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:14:02 | 200 | 36.13µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:14:03 | 200 | 50.232µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:14:07 | 200 | 33.009µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:14:12 | 200 | 35.868µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:14:13 | 200 | 35.089µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:14:17 | 200 | 34.447µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:14:22 | 200 | 39.723µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:14:23 | 200 | 50.308µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:14:27 | 200 | 35.847µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:14:32 | 200 | 35.66µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:14:33 | 200 | 32.285µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:14:37 | 200 | 43.637µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:14:42 | 200 | 40.349µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:14:43 | 200 | 41.299µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:14:47 | 200 | 43.079µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:14:52 | 200 | 42.179µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:14:53 | 200 | 68.479µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:14:57 | 200 | 38.364µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:15:02 | 200 | 39.867µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:15:03 | 200 | 58.307µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:15:07 | 200 | 40.056µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:15:12 | 200 | 39.511µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:15:13 | 200 | 38.678µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:15:17 | 200 | 38.714µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:15:22 | 200 | 39.107µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:15:23 | 200 | 40.878µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:15:27 | 200 | 64.239µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:15:32 | 200 | 37.37µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:15:33 | 200 | 39.854µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:15:37 | 200 | 36.224µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:15:42 | 200 | 40.176µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:15:43 | 200 | 46.6µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:15:47 | 200 | 38.873µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:15:52 | 200 | 36.879µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:15:53 | 200 | 39.102µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:15:57 | 200 | 51.806µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:16:02 | 200 | 40.895µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:16:03 | 200 | 49.787µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:16:07 | 200 | 38.2µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:16:12 | 200 | 39.302µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:16:13 | 200 | 42.636µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:16:17 | 200 | 42.664µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:16:22 | 200 | 40.417µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:16:23 | 200 | 42.909µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:16:27 | 200 | 37.847µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:16:32 | 200 | 40.944µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:16:33 | 200 | 38.647µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:16:37 | 200 | 52.372µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:16:42 | 200 | 34.142µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:16:43 | 200 | 36.566µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:16:47 | 200 | 36.193µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:16:52 | 200 | 34.051µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:16:53 | 200 | 37.011µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:16:57 | 200 | 36.34µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:17:02 | 200 | 34.774µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:17:03 | 200 | 32.823µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:17:07 | 200 | 36.169µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:17:12 | 200 | 33.664µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:17:13 | 200 | 33.956µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:17:17 | 200 | 37.685µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:17:22 | 200 | 37.117µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:17:23 | 200 | 58.856µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:17:27 | 200 | 32.796µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:17:32 | 200 | 33.491µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:17:33 | 200 | 35.654µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:17:37 | 200 | 33.21µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:17:42 | 200 | 36.388µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:17:43 | 200 | 34.127µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:17:47 | 200 | 32.793µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:17:52 | 200 | 34.472µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:17:53 | 200 | 35.728µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:17:57 | 200 | 33.236µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:18:02 | 200 | 32.807µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:18:03 | 200 | 35.717µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:18:07 | 200 | 36.049µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:18:12 | 200 | 36.748µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:18:13 | 200 | 40.172µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:18:17 | 200 | 38.753µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:18:22 | 200 | 39.045µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:18:23 | 200 | 36.229µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:18:27 | 200 | 33.745µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:18:32 | 200 | 35.234µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:18:33 | 200 | 32.52µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:18:37 | 200 | 36.509µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:18:42 | 200 | 34.173µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:18:43 | 200 | 33.513µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:18:47 | 200 | 33.247µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:18:52 | 200 | 35.533µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:18:53 | 200 | 36.06µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:18:57 | 200 | 35.268µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:19:02 | 200 | 34.941µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:19:03 | 200 | 33.858µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:19:07 | 200 | 38.852µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:19:12 | 200 | 33.49µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:19:13 | 200 | 34.821µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:19:17 | 200 | 35.163µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:19:22 | 200 | 37.935µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:19:23 | 200 | 38.136µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:19:27 | 200 | 34.252µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:19:32 | 200 | 36.08µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:19:33 | 200 | 32.367µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:19:37 | 200 | 33.965µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:19:42 | 200 | 35.819µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:19:43 | 200 | 53.457µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:19:47 | 200 | 33.448µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:19:52 | 200 | 35.52µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:19:53 | 200 | 40.423µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:19:57 | 200 | 43.424µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:20:02 | 200 | 34.067µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:20:03 | 200 | 33.588µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:20:07 | 200 | 41.438µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:20:12 | 200 | 45.605µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:20:13 | 200 | 45.246µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:20:17 | 200 | 35.921µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:20:22 | 200 | 39.35µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:20:23 | 200 | 36.692µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:20:27 | 200 | 35.088µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:20:32 | 200 | 34.128µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:20:33 | 200 | 48.145µs | 10.133.0.2 | GET "/health" [GIN] 2026/06/02 - 19:20:37 | 200 | 35.267µs | 10.133.0.2 | GET "/health"