Skip to content

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.

IDE Sketch

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