- sequencer table now populated with the unique sequencer in the request_type table
- sequencer_type is introduced which defines a sequencer
- support for sequencer (create, delete, edit)
- added support for a simple sequencer for backward compatibility
- added support for Solid sequencer
- tweaked the request_type api methods. removed the sequencer login info.
Additional effort is needed to abstract more previously existing functionality out of web controllers.
Add script that is able to create a sequencer configuration for the sample tracking system using API.
- eliminated the transfer_datasets.ini config file
- eliminated the data transfer user
- now the admin user initiating the data transfer is used as the data transfer user.
- the admin user is provided the add_library_item permission before data transfer if they dont have it
- sample update & data transfer amqp messages now includes api_key
- added web api methods to update requests, samples using restful api
- removed the old ad-doc web api
- modified the data transfer code to use this api
- code cleanup
The job that exports a history creates (a) a dataset for storing the archive and (b) multiple temporary attribute files to store the necessary data for exporting a history's datasets, jobs, etc. The temporary files are cleaned up when the job ends. Currently, there is no cleanup for history archive files.
- first pass for state change mechanism for multiple samples
- UI enhancements: checkboxes to select samples & selectfield to select specific operation
- removed state change UI for individual samples in the sample_events page
next is selecting library for multiple samples
- changed the notify field in the request table to JSONType to store recipient email address and other config details
- notification of specific sample state changes
- changes made to barcode scan AMQP handler to update sample state to also send email when required
- notification to multiple recipients
- request events history records notifications
- UI enhancements to the edit request page to allow users to change notification configurations
UI enhancements to the request page to show the request type state, user & notification details
- added a new table 'sample_dataset' to store sample datasets & their info when they are transfered from the sequencer
- the datasets transfer page now uses a grid to facilitate bulk renaming
- bulk renaming possible to fix the problem with the way SOLiD generates datasets
- the remote file browser is now independent of a specific sample, the user may select any sample when transferring datasets from the sequencer
A new controller called requests_common now handles all common tasks like create/edit/delete requests & samples. The requests controller has only the grid definition and requests_admin controller has the request_type code and the sequencer data transfer code.
Also fixed a form importer bug in forms.py
'enable_api = True' in config file. You should not enable the API on
production sites as this code is brand new and may contain serious bugs and
security flaws! Implemented:
* Display libraries
* Display library info
* Display library contents
* Display library content info
* Create library folders
* Upload datasets to a library from a server directory or with a path paste.
* Basic example scripts in scripts/api/
Framework changes that were made to support this:
* API Key interface in User Preferences.
* New api_keys database table for storing users' API Keys.
* New API-specific route mapper in webapp.
* API controllers in galaxy.web.api
* Return handling in reused library_common methods.
* expose_api decorator for API controller methods validates key and ensures
valid JSON format.
* UniverseWebTransaction renamed to GalaxyWebTransaction and subclassed for
GalaxyWebUITransaction and GalaxyWebAPITransaction.
Things that need to be done next:
* Documentation!
* Refactor reused code from library_common and other controllers into an
even-more-generic location and format. The main changes are that the Web UI
returns redirects and rendered templates, whereas the API returns various
HTTP status codes and JSON.
* Implement more functionality.
* The request and response format should be considered alpha and are subject to
change. They will be standardized as the API matures.
Hints to get started can be found in scripts/api/README