{"level":"info","timestamp":"2026-06-13T00:40:24.622Z","caller":"cmd/main.go:65","message":"Loading database connection URL from secret..."} {"level":"info","timestamp":"2026-06-13T00:40:24.636Z","caller":"cmd/main.go:172","message":"Connecting to PostgreSQL database...","tenant":"models-as-a-service"} {"level":"info","timestamp":"2026-06-13T00:40:24.637Z","caller":"cmd/main.go:101","message":"Metrics server starting","address":":9090"} {"level":"info","timestamp":"2026-06-13T00:40:24.811Z","caller":"api_keys/db_driver.go:91","message":"Database schema applied","version":5} {"level":"info","timestamp":"2026-06-13T00:40:24.811Z","caller":"api_keys/db_driver.go:58","message":"Connected to PostgreSQL database (schema applied)","tenant":"models-as-a-service"} {"level":"info","timestamp":"2026-06-13T00:40:24.915Z","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-13T00:40:24.927Z","caller":"cmd/main.go:134","message":"Server starting","address":":8443","secure":true} [GIN] 2026/06/13 - 00:40:31 | 200 | 77.548µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:40:36 | 200 | 46.901µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:40:41 | 200 | 44.023µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:40:46 | 200 | 42.441µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:40:51 | 200 | 61.057µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:40:56 | 200 | 57.772µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:41:01 | 200 | 47.27µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:41:01 | 200 | 31.623µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:41:06 | 200 | 33.079µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:41:11 | 200 | 32.652µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:41:11 | 200 | 45.221µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:41:16 | 200 | 32.786µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:41:21 | 200 | 36.747µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:41:21 | 200 | 32.179µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:41:26 | 200 | 33.264µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:41:31 | 200 | 41.983µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:41:31 | 200 | 34.302µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:41:36 | 200 | 33.031µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:41:41 | 200 | 31.848µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:41:41 | 200 | 33.687µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:41:46 | 200 | 36.608µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:41:51 | 200 | 34.675µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:41:51 | 200 | 32.515µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:41:56 | 200 | 30.027µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:42:01 | 200 | 34.889µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:42:01 | 200 | 35.117µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:42:06 | 200 | 32.935µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:42:11 | 200 | 32.401µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:42:11 | 200 | 30.962µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:42:16 | 200 | 32.405µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:42:21 | 200 | 32.838µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:42:21 | 200 | 34.738µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:42:26 | 200 | 40.913µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:42:31 | 200 | 32.62µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:42:31 | 200 | 34.253µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:42:36 | 200 | 41.677µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:42:41 | 200 | 32.781µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:42:41 | 200 | 34.934µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:42:46 | 200 | 32.828µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:42:51 | 200 | 33.171µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:42:51 | 200 | 34.64µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:42:56 | 200 | 31.59µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:43:01 | 200 | 33.419µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:43:01 | 200 | 34.435µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:43:06 | 200 | 34.247µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:43:11 | 200 | 33.464µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:43:11 | 200 | 32.31µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:43:16 | 200 | 54.745µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:43:21 | 200 | 46.468µs | 10.132.0.2 | GET "/health" {"level":"error","timestamp":"2026-06-13T00:43:21.615Z","caller":"token/handler.go:111","message":"Missing or empty tenant header","header":"X-MaaS-Tenant","stacktrace":"main.registerHandlers.(*Handler).ExtractUserInfo.func4\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/token/handler.go:111\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/13 - 00:43:21 | 500 | 116.165µs | 52.71.36.72 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/13 - 00:43:21 | 200 | 40.782µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:43:26 | 200 | 45.858µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:43:31 | 200 | 41.538µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:43:31 | 200 | 40.292µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:43:36 | 200 | 40.43µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:43:41 | 200 | 38.582µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:43:41 | 200 | 38.596µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:43:46 | 200 | 39.024µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:43:51 | 200 | 41.559µs | 10.132.0.2 | GET "/health" [GIN] 2026/06/13 - 00:43:51 | 200 | 39.348µs | 10.132.0.2 | GET "/health" {"level":"error","timestamp":"2026-06-13T00:43:54.240Z","caller":"token/handler.go:111","message":"Missing or empty tenant header","header":"X-MaaS-Tenant","stacktrace":"main.registerHandlers.(*Handler).ExtractUserInfo.func4\n\tgithub.com/opendatahub-io/models-as-a-service/maas-api/internal/token/handler.go:111\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/13 - 00:43:54 | 500 | 90.927µs | 52.71.36.72 | POST "/v1/api-keys" | Authorization=present X-Api-Key=absent Cookie=absent Set-Cookie=absent [GIN] 2026/06/13 - 00:43:56 | 200 | 42.65µs | 10.132.0.2 | GET "/health"