<div dir="ltr"><div>Originally, our upload story was as follows:</div><div>The user will upload a new file to Pulp via POST to /artifacts/ (provided by core)<br></div><div>The user will create a new plugin specific Content via POST to /path/to/plugin/content/, referencing whatever artifacts that are contained, and whatever fields are expected for the new content.<br></div><div>The user will add the new content to a repository via POST to /repositories/1/versions/<br></div><div><br></div><div>However, this is somewhat cumbersome to the user with 3 API calls to accomplish something that only took one call in Pulp 2. <br></div><div><br></div><div>There are a couple of different paths plugins have taken to improve the user experience:</div><div>The Python plugin follows the above workflow, but reads the Artifact file to determine the values for the fields. The RPM plugin has gone even farther and created a new endpoint for "one shot" upload that perform all of this in a single call. I think it is likely that the Python plugin will move more in the "one shot" direction, and other plugins will probably follow.<br></div><div><br></div><div>That said, I think we should discuss this as a community to encourage plugins to behave similarly, and because there may also be a possibility for sharing some of code. It is my hope that a "one shot upload" could do 2 things: 1) Upload and create Content. 2) Optionally add that content to repositories.</div></div>