diff --git a/internal/manager/api_impl/jobs.go b/internal/manager/api_impl/jobs.go index ae9d783a..2a3a6c39 100644 --- a/internal/manager/api_impl/jobs.go +++ b/internal/manager/api_impl/jobs.go @@ -24,6 +24,7 @@ import ( "fmt" "net/http" + "github.com/google/uuid" "github.com/labstack/echo/v4" "github.com/rs/zerolog/log" "gitlab.com/blender/flamenco-goja-test/pkg/api" @@ -83,6 +84,11 @@ func (f *Flamenco) FetchJob(e echo.Context, jobId string) error { Str("job_id", jobId). Logger() + if _, err := uuid.Parse(jobId); err != nil { + logger.Debug().Msg("invalid job ID received") + return sendAPIError(e, http.StatusBadRequest, "job ID not valid") + } + logger.Debug().Msg("fetching job") ctx := e.Request().Context() diff --git a/pkg/api/flamenco-manager.yaml b/pkg/api/flamenco-manager.yaml index 026d0d07..4dfbd330 100644 --- a/pkg/api/flamenco-manager.yaml +++ b/pkg/api/flamenco-manager.yaml @@ -108,7 +108,7 @@ paths: - name: job_id in: path required: true - schema: {type: string} + schema: {type: string, format: uuid} responses: "200": description: Job info diff --git a/pkg/api/openapi_spec.gen.go b/pkg/api/openapi_spec.gen.go index 7393f4bb..593e2680 100644 --- a/pkg/api/openapi_spec.gen.go +++ b/pkg/api/openapi_spec.gen.go @@ -54,12 +54,12 @@ var swaggerSpec = []string{ "pUZLIafHJyefVbItwwEyy8CuKil3JNwuAidCOU2E4mIjeMVkuJCcHtzGfhQxQ2syIp9fIHXn4XOzKgpm", "do1XCSMKtn4WXmnTtBP1ANyZGP31JcNK4UdUSy975F7UN2oWg4+A4qUWynl9mxibNRi1hpFAew6uGds/", "oVeHdwQjpms2tfcEBwZ8Do7IwV2CH7NzEObgquUO07WsGvNft58YevZ7f63TpeD7oyZ8Bi7LQ6q2/P0s", - "K1CreNMWISgQG2RU0rHjYR2//IR+uSPJPFz3ze819QuEpeFq2/vqAXEaDikeQbNAyWszh4oyM3F8m2zb", - "6W0UHOs5L055nwYhR1qMEUOFXZiytfSfFSwHE++IiAq7cUlqGT4rGFYK3pWQ4eAEcU83MGrxIyJua3/W", - "sRRfXI4cCi5BHGhP2sOIcvGr9ZEam+XAKwkXYXD9dNjX/YY+YiT/9bwL+vuEPj75eti0/ajjF7b+VwN/", - "e1pfKu4T+vXJ6cerxr1JfET4czB1/XkKSgDvtaMeBXuN6OtLxLPWmz+ljgkVA8D1LXFfJHjD2ehF061/", - "XgSzqXE49HsziqwjxUPbfoP2xP/epP67EUqyBucLQz0UkpTJVLIenlt/FXlQys7P+sU9+MfTzHRRVAr9", - "ET8xH3YA05Z81Ht/uf9vAAAA//9nlOZMpSEAAA==", + "K1CreNMWISgQG2RU0rHjPSPI/vIT+umOpPPw3XeH19wvEJaGq27vuwfEbTikeATRAiWvzR4qzMzEcW6y", + "bae5UbCs57449X0axBxpOUYMFXZhCtfSf1bwHEzAIyIqDC9Jahk+KzhWCt6VkOEgBXFPNzBq8SNCbmt/", + "1rEUX1yOHAouQVxoT9rDiHLxK/aRmpvlwCsJF2GQ/XRY2P2mPmIk/zW9WwT2CX188vWwiftRxy9u/a8I", + "/ja1vmTcJ/Trk9OPV517k/mI8Odg6nr0FJQA3mtPPSr2GtPXl4hnrTd/Sh0TKgaA61vivkjwhrPRi6Zb", + "D70IZlPjcuj/ZhRZR4qHtv0G7Yn/vUn9dySUZA3OF4p6SCQpk6lkPXy3/mryoLSdn/WLffCPp5npoqgU", + "+iN+cj7sCKYt+aj3/nL/3wAAAP//aU95WLUhAAA=", } // GetSwagger returns the content of the embedded swagger specification file