You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We want to support the importing of plugins from external sources. This allows for:
External development of plugins
Sharing of plugins between deployments
Management and automatic registration of Dioptra built-in plugins
Automated registration of plugins (instead of manually uploading each file via a client)
This will be implemented as a new workflow in the REST API, /workflows/resourcesImport.
Initially, all imported plugins will have a read-only lock applied. We will consider mechanisms for editing and reconciling changes in the future.
Initially, we will support importing from a archive (.zip, or .tar.gz) file upload or a git repository (no authentication support). We will consider other sources in the future.
A new database table to track import source will be needed. It should include: id, name, source_type, url, hash, and timestamp(s).
Tasks:
Design the schemas and endpoint(s) for the resourcesImport workflow in the REST API design doc on google drive
Add the design to this issue once finalized
Implement the schema(s) and controller(s) for the workflow
Add new database table for tracking import source
Implement the service layer with a single database commit
Write documentation for the structure of an importable plugin
Definition of Done:
The contract for the structure of a plugin is documented in the sphinx docs
Plugins can be imported from a file upload or git repository via a workflow
New integration tests that cover plugin import functionality are implemented
All tests pass
The feature is merged into dev
The text was updated successfully, but these errors were encountered:
A workflow for importing resources from a file or git repo. It will handle the importing of the following resources:
Plugin
PluginFile
PluginParameterType
EntryPoint
POST /workflows/resourcesImport
payload:
{
"groupId": int, # the group that will own the imported resources"sourceType": Enum("upload", "git"), # the source of the import"uri": str|None, # the uri of the git repository (if sourceType is git)"data": bytes|None, # the uploaded archive file (if sourceType is upload)"readOnly": bool, # whether imported resources should get a readonly lock"resolveNameConflicts", Enun("fail", "overwrite") # behavior for resolving name conflicts
}
We want to support the importing of plugins from external sources. This allows for:
This will be implemented as a new workflow in the REST API,
/workflows/resourcesImport
.Initially, all imported plugins will have a read-only lock applied. We will consider mechanisms for editing and reconciling changes in the future.
Initially, we will support importing from a archive (.zip, or .tar.gz) file upload or a git repository (no authentication support). We will consider other sources in the future.
A new database table to track import source will be needed. It should include: id, name, source_type, url, hash, and timestamp(s).
Tasks:
resourcesImport
workflow in the REST API design doc on google driveDefinition of Done:
The text was updated successfully, but these errors were encountered: