Integrated Developer Environment¶
The Integrated Developer Environment (IDE) is a place to view and edit resources together in order to develop analysis for AO.
Goals¶
This will be aimed at advanced users with some knowledge of analysis, programming, and the AO platform.
- It will attempt to be relatively simple
- Less focus on developing applications fully and more focused on integrating application into our system
- Currently no plans for direct ssh access to backend
- Everything runs through task system which is an async queue system.
Examples¶
Some examples of web based IDE's.
Resources¶
There are many resources that are involved in developing analysis for the platform.
Task System¶
The task system is the main link to our backend that is designed to be flexible and scalable.
Workspace¶
A workspace
is a filesystem in the backend that can be mounted for running tasks. Anything done in a workspace
will be preserved after a run is completed so the task system
allows side effects to take place in addition to the primary output of tasks
.
Console¶
The workspace console is used to run command within a workspace. It is a special task:docker
that runs commands through bash by default.
File System¶
The file
type resource is used to store and retrieve objects for users. This is the in between the user and the workspace
. Users can only access the workspace
through tasks
. To get files onto a workspace
, it must first be put onto the filesystem, and then downloaded to the workspace
. To retrieve files from a workspace
, it must be copied to a file
and then downloaded from there.
Events¶
Events
are objects that are passed to a task to instatiate a task run. Events can be created from many sources, they can be mapped and validated according to configuration, and eventually will be able to saved and reused for testing and development purposes.
Design¶
Here is a sketch of the potential layout.
You will be able to toggle between a task
view and a workspace
view.
File Row¶
Show file navigation.
- In task view, files will be displayed that relate to the task and are stored as references in the task object.
- allow users to sync up and down these files
- In workspace view, show file tree by using
ls
task on backend to retrieve array of files and folders as user traverses tree
Show file editor
For specific file types, they will be displayed in editor and can be saved and synced with workspace.
Configuration Row¶
Display/edit configuration for task or workspace depending on which view you are in. The notes for the resource will be displayed on the right.
Run Row¶
Ability to run task (task view) or console commands (workspace view). Show output related to these commands.
Functions¶
Sync Files to Workspace¶
- Add existing file to file group associated with a task
- Add file from workspace to file system for download
- Easily sync files up and down to workspace.
Manipulate Events¶
- Add/create events
- Edit/inspect existing events
Test Run Tasks¶
- Run task with events
- View output from tasks
Copy Tasks¶
- Easily copy task and cross team copies