Adds download endpoint to MlModel Registry
What does this MR do and why?
Adds GET /api/v4/projects/:id/packages/ml_models/:package_name/:package_version/:file_name
. Uses the same authentication table as rubygems endpoint.
How to set up and validate locally
-
Enable the feature flag
echo "Feature.enable(:model_registry)" | bundle exec rails c
-
Create an access token, and choose a project. Create a simple file:
echo 'blah' > blah.txt
-
Upload a file to
ml_models
. It should return{"message":"201 Created"}
with feature flag enabled,404
if feature flag disabled.curl --header "Authorization:$GLAB_TOKEN" --upload-file blah.txt "http://localhost:3000/api/v4/projects/$PROJECT_ID/packages/ml_models/blah2/1.1.0/blah.txt"
-
Download the file:
curl --header "Authorization:$GLAB_TOKEN" "http://localhost:3000/api/v4/projects/19/packages/ml_models/blah2/1.1.0/blah.txt"
Database
Query:
SELECT
"packages_packages".*
FROM
"packages_packages"
WHERE
"packages_packages"."project_id" = 1
AND "packages_packages"."status" IN (0, 1)
AND "packages_packages"."package_type" = 14
AND "packages_packages"."name" = 'abc'
AND "packages_packages"."version" = '123'
LIMIT 1
https://console.postgres.ai/gitlab/gitlab-production-tunnel-pg12/sessions/19756/commands/64661
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
I have evaluated the MR acceptance checklist for this MR.
Related to #385043 (closed)
Edited by Eduardo Bonet