Improves ml_model package endpoints
What does this MR do and why?
Updates ml model endpoints to use bearer token
- Endpoints now look for a bearer token, to keep compatibility with MLflow client
- Upload is taking write_model_registry policy into account.
- File upload does not create a package, model or model version, these need to be created beforehand
This feature has not yet been released, none of these changes are breaking.
How to set up and validate locally
- Enable the feature flag
Feature.enable(:model_registry)
- Create a model and a model version:
p = Project.find_by(id: 20) # or whatever project you want to use for testing
model = Ml::FindOrCreateModelService.new(p, "model_1").execute
model_version = Ml::FindOrCreateModelVersionService.new(p, { model_name: "model_1", version: "1.0.0" }).execute
- On a project with developer access, use the API to create a package and upload a file:
curl --header "Authorization:Bearer $GLAB_TOKEN" --upload-file ./README.md "http://localhost:3000/api/v4/projects/20/packages/ml_models/model_1/1.0.0/README.md"
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.