Connected CUBE client whose token authorizes the upload.
Compute resources to register the plugin on.
The descriptor text (field fname) or a store URL (field plugin_store_url).
The registered plugin's fields, decoded from the Collection+JSON item.
Registers one plugin through CUBE's administrative upload.
Posted as multipart directly rather than through chrisapi: on a refusal whose body is not Collection+JSON (Django REST's field errors are plain JSON), chrisapi replaces CUBE's reason with "Bad server response!", and a sync that names why each plugin failed needs that reason.