Skip to content

Commit d168115

Browse files
authored
Merge pull request #1 from galaxyproject/dev
Merging
2 parents 2a5dc90 + e773168 commit d168115

220 files changed

Lines changed: 1941 additions & 1815 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.ci/flake8_lint_include_list.txt

Lines changed: 13 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -9,71 +9,15 @@ lib/galaxy/actions/
99
lib/galaxy/auth/
1010
lib/galaxy/config.py
1111
lib/galaxy/containers/
12-
lib/galaxy/dataset_collections/builder.py
13-
lib/galaxy/dataset_collections/__init__.py
14-
lib/galaxy/dataset_collections/structure.py
15-
lib/galaxy/dataset_collections/subcollections.py
16-
lib/galaxy/dataset_collections/type_description.py
17-
lib/galaxy/dataset_collections/types/__init__.py
18-
lib/galaxy/datatypes/assembly.py
19-
lib/galaxy/datatypes/binary.py
20-
lib/galaxy/datatypes/checkers.py
21-
lib/galaxy/datatypes/constructive_solid_geometry.py
22-
lib/galaxy/datatypes/converters/bcf_bgzip_to_bcf_converter.py
23-
lib/galaxy/datatypes/converters/bcf_to_bcf_bgzip_converter.py
24-
lib/galaxy/datatypes/converters/bedgraph_to_array_tree_converter.py
25-
lib/galaxy/datatypes/converters/bed_to_gff_converter.py
26-
lib/galaxy/datatypes/converters/bgzip.py
27-
lib/galaxy/datatypes/converters/fasta_to_len.py
28-
lib/galaxy/datatypes/converters/fastqsolexa_to_fasta_converter.py
29-
lib/galaxy/datatypes/converters/fastqsolexa_to_qual_converter.py
30-
lib/galaxy/datatypes/converters/fastq_to_fqtoc.py
31-
lib/galaxy/datatypes/converters/gff_to_bed_converter.py
32-
lib/galaxy/datatypes/converters/gff_to_interval_index_converter.py
33-
lib/galaxy/datatypes/converters/__init__.py
34-
lib/galaxy/datatypes/converters/interval_to_bed_converter.py
35-
lib/galaxy/datatypes/converters/interval_to_bedstrict_converter.py
36-
lib/galaxy/datatypes/converters/interval_to_coverage.py
37-
lib/galaxy/datatypes/converters/interval_to_fli.py
38-
lib/galaxy/datatypes/converters/interval_to_interval_index_converter.py
39-
lib/galaxy/datatypes/converters/interval_to_tabix_converter.py
40-
lib/galaxy/datatypes/converters/lped_to_fped_converter.py
41-
lib/galaxy/datatypes/converters/lped_to_pbed_converter.py
42-
lib/galaxy/datatypes/converters/maf_to_fasta_converter.py
43-
lib/galaxy/datatypes/converters/maf_to_interval_converter.py
44-
lib/galaxy/datatypes/converters/pbed_to_lped_converter.py
45-
lib/galaxy/datatypes/converters/picard_interval_list_to_bed6_converter.py
46-
lib/galaxy/datatypes/converters/pileup_to_interval_index_converter.py
47-
lib/galaxy/datatypes/converters/tabular_to_dbnsfp.py
48-
lib/galaxy/datatypes/converters/vcf_to_vcf_bgzip.py
49-
lib/galaxy/datatypes/converters/wiggle_to_array_tree_converter.py
50-
lib/galaxy/datatypes/coverage.py
51-
lib/galaxy/datatypes/dataproviders/base.py
52-
lib/galaxy/datatypes/dataproviders/exceptions.py
53-
lib/galaxy/datatypes/dataproviders/__init__.py
54-
lib/galaxy/datatypes/data.py
55-
lib/galaxy/datatypes/display_applications/__init__.py
56-
lib/galaxy/datatypes/display_applications/util.py
57-
lib/galaxy/datatypes/genetics.py
58-
lib/galaxy/datatypes/images.py
59-
lib/galaxy/datatypes/__init__.py
60-
lib/galaxy/datatypes/interval.py
61-
lib/galaxy/datatypes/metadata.py
62-
lib/galaxy/datatypes/msa.py
63-
lib/galaxy/datatypes/ngsindex.py
64-
lib/galaxy/datatypes/proteomics.py
65-
lib/galaxy/datatypes/sequence.py
66-
lib/galaxy/datatypes/tabular.py
67-
lib/galaxy/datatypes/text.py
68-
lib/galaxy/datatypes/tracks.py
69-
lib/galaxy/datatypes/util/
12+
lib/galaxy/dataset_collections/
13+
lib/galaxy/datatypes/
14+
lib/galaxy/dependencies/
7015
lib/galaxy/eggs/
71-
lib/galaxy/exceptions/__init__.py
16+
lib/galaxy/exceptions/
7217
lib/galaxy/external_services/__init__.py
7318
lib/galaxy/external_services/parameters.py
7419
lib/galaxy/external_services/result_handlers/basic.py
7520
lib/galaxy/external_services/result_handlers/__init__.py
76-
lib/galaxy_ext/
7721
lib/galaxy/forms/__init__.py
7822
lib/galaxy/jobs/actions/
7923
lib/galaxy/jobs/command_factory.py
@@ -112,23 +56,15 @@ lib/galaxy/managers/lddas.py
11256
lib/galaxy/managers/libraries.py
11357
lib/galaxy/managers/secured.py
11458
lib/galaxy/managers/taggable.py
115-
lib/galaxy/model/__init__.py
116-
lib/galaxy/model/item_attrs.py
117-
lib/galaxy/model/mapping.py
118-
lib/galaxy/model/metadata.py
119-
lib/galaxy/model/migrate/
120-
lib/galaxy/model/orm/
121-
lib/galaxy/model/tool_shed_install/migrate/__init__.py
122-
lib/galaxy/model/tool_shed_install/migrate/versions/
123-
lib/galaxy/model/util.py
59+
lib/galaxy/model/
12460
lib/galaxy/objectstore/pulsar.py
12561
lib/galaxy/objectstore/s3_multipart_upload.py
12662
lib/galaxy/openid/__init__.py
12763
lib/galaxy/quota/
12864
lib/galaxy/sample_tracking/data_transfer.py
12965
lib/galaxy/sample_tracking/__init__.py
13066
lib/galaxy/sample_tracking/sample.py
131-
lib/galaxy/security/validate_user_input.py
67+
lib/galaxy/security/
13268
lib/galaxy/tags/
13369
lib/galaxy/tools/
13470
lib/galaxy/util/
@@ -173,6 +109,7 @@ lib/galaxy/webapps/galaxy/api/samples.py
173109
lib/galaxy/webapps/galaxy/api/tools.py
174110
lib/galaxy/webapps/galaxy/api/tours.py
175111
lib/galaxy/webapps/galaxy/api/workflows.py
112+
lib/galaxy/webapps/galaxy/config_watchers.py
176113
lib/galaxy/webapps/galaxy/controllers/async.py
177114
lib/galaxy/webapps/galaxy/controllers/data_manager.py
178115
lib/galaxy/webapps/galaxy/controllers/error.py
@@ -185,7 +122,6 @@ lib/galaxy/webapps/galaxy/controllers/requests.py
185122
lib/galaxy/webapps/galaxy/controllers/search.py
186123
lib/galaxy/webapps/galaxy/controllers/tool_runner.py
187124
lib/galaxy/webapps/galaxy/controllers/userskeys.py
188-
lib/galaxy/webapps/galaxy/config_watchers.py
189125
lib/galaxy/webapps/galaxy/__init__.py
190126
lib/galaxy/webapps/__init__.py
191127
lib/galaxy/webapps/reports/config.py
@@ -208,13 +144,11 @@ lib/galaxy/webapps/tool_shed/util/__init__.py
208144
lib/galaxy/webapps/tool_shed/util/ratings_util.py
209145
lib/galaxy/webapps/tool_shed/util/shed_statistics.py
210146
lib/galaxy/webapps/util.py
211-
lib/galaxy/workflow/extract.py
212-
lib/galaxy/workflow/__init__.py
213-
lib/galaxy/workflow/render.py
214-
lib/galaxy/workflow/run.py
215-
lib/galaxy/workflow/schedulers/
216-
lib/galaxy/workflow/steps.py
217-
lib/galaxy/work/__init__.py
147+
lib/galaxy/webhooks/
148+
lib/galaxy/work/
149+
lib/galaxy/workflow/
150+
lib/galaxy_ext/
151+
lib/log_tempfile.py
218152
lib/mimeparse.py
219153
lib/psyco_full.py
220154
lib/tool_shed/
@@ -365,6 +299,7 @@ test/unit/shed_unit/test_fabric_util.py
365299
test/unit/shed_unit/test_td_common_util.py
366300
test/unit/test_galaxy_transactions.py
367301
test/unit/test_lazy_process.py
302+
test/unit/test_objectstore.py
368303
test/unit/test_routes.py
369304
test/unit/test_security_helper.py
370305
test/unit/test_sockets.py
@@ -392,6 +327,5 @@ test/unit/web/base/__init__.py
392327
test/unit/web/framework/__init__.py
393328
test/unit/web/__init__.py
394329
test/unit/workflows/
395-
test/unit/test_objectstore.py
396330
tool_list.py
397331
tools/

.ci/py3_sources.txt

Lines changed: 4 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -8,35 +8,15 @@ lib/galaxy/auth/
88
lib/galaxy/config.py
99
lib/galaxy/containers/
1010
lib/galaxy/dataset_collections/
11-
lib/galaxy/datatypes/assembly.py
12-
lib/galaxy/datatypes/binary.py
13-
lib/galaxy/datatypes/constructive_solid_geometry.py
14-
lib/galaxy/datatypes/converters/
15-
lib/galaxy/datatypes/dataproviders/
16-
lib/galaxy/datatypes/data.py
17-
lib/galaxy/datatypes/genetics.py
18-
lib/galaxy/datatypes/images.py
19-
lib/galaxy/datatypes/interval.py
20-
lib/galaxy/datatypes/msa.py
21-
lib/galaxy/datatypes/ngsindex.py
22-
lib/galaxy/datatypes/proteomics.py
23-
lib/galaxy/datatypes/sequence.py
24-
lib/galaxy/datatypes/sniff.py
25-
lib/galaxy/datatypes/tabular.py
26-
lib/galaxy/datatypes/tracks.py
11+
lib/galaxy/datatypes/
2712
lib/galaxy/dependencies/
2813
lib/galaxy/eggs/
2914
lib/galaxy/exceptions/
3015
lib/galaxy/external_services/
3116
lib/galaxy/forms/
3217
lib/galaxy/jobs/
3318
lib/galaxy/managers/
34-
lib/galaxy/model/__init__.py
35-
lib/galaxy/model/item_attrs.py
36-
lib/galaxy/model/mapping.py
37-
lib/galaxy/model/metadata.py
38-
lib/galaxy/model/migrate/
39-
lib/galaxy/model/orm/now.py
19+
lib/galaxy/model/
4020
lib/galaxy/objectstore/
4121
lib/galaxy/openid/
4222
lib/galaxy/quota/
@@ -68,11 +48,9 @@ lib/galaxy/webapps/tool_shed/controllers/user.py
6848
lib/galaxy/webapps/tool_shed/framework/middleware/remoteuser.py
6949
lib/galaxy/webapps/tool_shed/__init__.py
7050
lib/galaxy/webapps/tool_shed/util/ratings_util.py
51+
lib/galaxy/webhooks/
7152
lib/galaxy/work/
72-
lib/galaxy/workflow/extract.py
73-
lib/galaxy/workflow/run.py
74-
lib/galaxy/workflow/schedulers/
75-
lib/galaxy/workflow/steps.py
53+
lib/galaxy/workflow/
7654
lib/galaxy_ext/
7755
lib/log_tempfile.py
7856
lib/psyco_full.py

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ database/files
1717
database/jobs_directory
1818
database/job_working_directory
1919
database/pbs
20+
database/test_errors
2021
database/tmp
2122
database/*.sqlite
2223
database/openid_consumer_cache
@@ -135,3 +136,4 @@ doc/source/dev/schema.rst
135136
.DS_Store
136137
*.rej
137138
*~
139+
.idea

CONTRIBUTING.md

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,8 @@ opened using [this form](https://github.com/galaxyproject/galaxy/issues/new).
6666
should be made against the recent `release_XX.XX` branch (`git checkout release_XX.XX`).
6767

6868
* Serious security problems should not be fixed via pull request - please
69-
responsibly disclose these by e-mailing them (with or without patches) to
70-
galaxy-committers@lists.galaxyproject.org . The Galaxy core development team will
71-
issue patches to public servers before announcing the issue to ensure there
72-
is time to patch and highlight these fixes widely. We will provide you
73-
credit for the discovery when publicly disclosing the issue.
69+
see [the Galaxy security policies](SECURITY_POLICY.md) for information
70+
about responsibly disclosing security issues.
7471

7572
* If your changes modify code - please ensure the resulting files
7673
conform to Galaxy [style

SECURITY_POLICY.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# Security
2+
3+
The Galaxy project is strongly committed to security and responsible disclosure. We have adopted and published a set of policies specifying how we will act in response to reported security issues, in order to ensure timely updates are made available to all affected parties.
4+
5+
## Reporting Security Issues
6+
7+
If you believe you have discovered a security issue, please email [galaxy-committers@lists.galaxyproject.org](galaxy-committers@lists.galaxyproject.org). Please use `[SECURITY]` in the email title. Someone on that list will acknowledge your email within 2 US business days. We ask that you not disclose the issues on the public issue tracker. We will provide you credit for the discovery when publicly disclosing the issue.
8+
9+
Security issues which *only* affect a pre-release version of Galaxy (i.e. the `dev` branch in GitHub) do not need to go through this process, so you may open issues and pull requests publicly.
10+
11+
## Supported versions
12+
13+
The following branches or releases receive security support:
14+
15+
- Development on the `dev` branch, hosted on GitHub, which will become the next release of Galaxy
16+
- Releases within the past 12 months.
17+
- E.g. 16.04 will receive support until 2017-04. As the month changes to 2017-05 it will become unsupported.
18+
- There are currently no plans for Long Term Support (LTS) releases.
19+
20+
For unsupported branches:
21+
22+
- Older versions of Galaxy may be affected by security issues.
23+
- Security patches *may* apply
24+
- The security team does not commit to investigating issues that pertain to unsupported releases.
25+
- The security team does not commit to issuing patches or new releases of unsupported versions.
26+
27+
## Issue Severity
28+
29+
Galaxy takes a very conservative stance on issue severity as individual Galaxy instances often install tools and make customizations that might increase their risk in the face of otherwise less-serious vulnerabilities. As a result, issues that would be considered less-severe in other projects may be treated as higher risk here.
30+
31+
### Issue Classification
32+
33+
Severity | Examples
34+
------------ | ---------
35+
High | Remote code execution (RCE), SQL Injection, Cross-site scripting (XSS), and *any issue allowing user impersonation*.
36+
Medium / Low | Unvalidated redirects/forwards, Issues due to uncommon configuration options.
37+
38+
These are only examples. The security team will provide a severity classification based on its impact on the average Galaxy instance. However, Galaxy administrators should take it upon themselves to evaluate the impact for their instance(s).
39+
40+
## Notification of Vulnerabilities
41+
42+
For high severity issues, we will notify [the list of public Galaxy owners](https://lists.galaxyproject.org/listinfo/galaxy-public-servers) with:
43+
44+
- A description of the issue
45+
- List of supported versions that are affected
46+
- Steps to update or patch your Galaxy
47+
48+
The issue will then be embargoed for three (3) days. For medium and low
49+
severity issues, or for publicly announcing high severity issues after the
50+
embargo, we will:
51+
52+
- Patch the oldest release within the 12 month support window, and merge that fix forward.
53+
- Updates will be available on the `release_XX.YY` branches.
54+
- Update each release branch
55+
- Post a notice to the [galaxy-announce mailing list](https://lists.galaxyproject.org/listinfo/galaxy-announce) with:
56+
- A description of the issue
57+
- List of supported versions that are affected
58+
- Steps to update or patch your Galaxy
59+
60+
If an issue is deemed to be time-sensitive – e.g. due to active and ongoing exploits in the wild – the embargo may be shortened considerably.
61+
62+
If we believe that the reported issue affects other Galaxy Project components or projects outside of the Galaxy ecosystem, we may discuss the issue with those projects and coordinate disclosure and resolution with them.

client/galaxy/scripts/apps/analysis.js

Lines changed: 48 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,11 @@ var jQuery = require( 'jquery' ),
1212
GridView = require( 'mvc/grid/grid-view' ),
1313
PageList = require( 'mvc/page/page-list' ),
1414
Workflows = require( 'mvc/workflow/workflow' ),
15-
WorkflowsConfigureMenu = require( 'mvc/workflow/workflow-configure-menu' );
15+
HistoryList = require( 'mvc/history/history-list' ),
16+
WorkflowsConfigureMenu = require( 'mvc/workflow/workflow-configure-menu' ),
17+
ToolFormComposite = require( 'mvc/tool/tool-form-composite' ),
18+
Utils = require( 'utils/utils' ),
19+
Ui = require( 'mvc/ui/ui-misc' );
1620

1721
/** define the 'Analyze Data'/analysis/main/home page for Galaxy
1822
* * has a masthead
@@ -82,9 +86,14 @@ window.app = function app( options, bootstrapped ){
8286
'(/)user(/)' : 'show_user',
8387
'(/)user(/)(:form_id)' : 'show_user_form',
8488
'(/)workflow(/)' : 'show_workflows',
89+
'(/)workflow/run(/)' : 'show_run',
8590
'(/)pages(/)(:action_id)' : 'show_pages',
86-
'(/)datasets(/)(:action_id)' : 'show_datasets',
91+
'(/)visualizations/list_published(/)' : 'show_visualizations',
92+
'(/)workflows/list_published(/)' : 'show_workflows_published',
93+
'(/)histories(/)(:action_id)' : 'show_histories',
94+
'(/)datasets(/)list(/)' : 'show_datasets',
8795
'(/)workflow/configure_menu(/)' : 'show_configure_menu',
96+
'(/)workflow/import_workflow' : 'show_import_workflow',
8897
'(/)custom_builds' : 'show_custom_builds'
8998
},
9099

@@ -119,6 +128,18 @@ window.app = function app( options, bootstrapped ){
119128
this.page.display( new UserPreferences.Forms( { form_id: form_id, user_id: Galaxy.params.id } ) );
120129
},
121130

131+
show_visualizations : function() {
132+
this.page.display( new GridView( { url_base: Galaxy.root + 'visualization/list_published', dict_format: true } ) );
133+
},
134+
135+
show_workflows_published : function() {
136+
this.page.display( new GridView( { url_base: Galaxy.root + 'workflow/list_published', dict_format: true } ) );
137+
},
138+
139+
show_histories : function( action_id ) {
140+
this.page.display( new HistoryList.View( { action_id: action_id } ) );
141+
},
142+
122143
show_datasets : function() {
123144
this.page.display( new GridView( { url_base: Galaxy.root + 'dataset/list', dict_format: true } ) );
124145
},
@@ -135,6 +156,14 @@ window.app = function app( options, bootstrapped ){
135156
this.page.display( new Workflows.View() );
136157
},
137158

159+
show_run : function() {
160+
this._loadWorkflow();
161+
},
162+
163+
show_import_workflow : function() {
164+
this.page.display( new Workflows.ImportWorkflowView() );
165+
},
166+
138167
show_configure_menu : function(){
139168
this.page.display( new WorkflowsConfigureMenu.View() );
140169
},
@@ -163,7 +192,7 @@ window.app = function app( options, bootstrapped ){
163192
} else {
164193
// show the workflow run form
165194
if( params.workflow_id ){
166-
this._loadCenterIframe( 'workflow/run?id=' + params.workflow_id );
195+
this._loadWorkflow();
167196
// load the center iframe with controller.action: galaxy.org/?m_c=history&m_a=list -> history/list
168197
} else if( params.m_c ){
169198
this._loadCenterIframe( params.m_c + '/' + params.m_a );
@@ -188,6 +217,22 @@ window.app = function app( options, bootstrapped ){
188217
this.page.$( '#galaxy_main' ).prop( 'src', url );
189218
},
190219

220+
/** load workflow by its url in run mode */
221+
_loadWorkflow: function() {
222+
var self = this;
223+
Utils.get({
224+
url: Galaxy.root + 'api/workflows/' + Utils.getQueryString( 'id' ) + '/download',
225+
data: { 'style': 'run' },
226+
success: function( response ) {
227+
self.page.display( new ToolFormComposite.View( response ) );
228+
},
229+
error: function( response ) {
230+
var error_msg = "Error occurred while loading the resource.",
231+
options = { 'message': error_msg, 'status': 'error', 'persistent': true, 'cls': 'errormessage' };
232+
self.page.display( new Ui.Message( options ) );
233+
}
234+
});
235+
}
191236
});
192237

193238
// render and start the router

0 commit comments

Comments
 (0)