Commit Graph
89084 Commits
Author SHA1 Message Date
John ChiltonandClaude Opus 4.6 ecb803ddae Skip pydantic validators for optional text params with None/empty values
Optional text params with regex (or other) validators would reject
None/"" in request format even though the runtime correctly skips
validation for empty optional params. Add optional flag to validator
chain so None/"" short-circuit before reaching static validators.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 13:32:37 -04:00
John Davis aedb238c01 Merge pull request #22265 from jdavcs/26.0_backport_21939
[26.0] Backport of 21939
2026-03-26 09:58:04 -04:00
nekrutandClaude Opus 4.6 ae93a58d9a Add subcategory labels to Collection Operations tool section
Organize the flat list of ~30 collection tools into 6 labeled
subcategories (Build, Restructure, Filter, Pair and Combine,
Sort and Label, Extract) to help users find tools faster.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 09:50:06 -04:00
nekrutandClaude Opus 4.6 ce2d59d604 Expand help text and add SVGs for apply rules, flat cross product, and nested cross product tools
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 09:50:01 -04:00
nekrutandClaude Opus 4.6 54e1ee3e2a Expand help text and add/replace SVGs for relabel, sort, split, tag, unzip, and zip tools
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 09:49:56 -04:00
nekrutandClaude Opus 4.6 185fb88dd1 Expand help text and add/replace SVGs for merge and nest collection tools
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 09:49:51 -04:00
nekrutandClaude Opus 4.6 28ded5c80f Expand help text and add SVG for keep success datasets tool
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 09:49:41 -04:00
nekrutandClaude Opus 4.6 db11f526bd Expand help text and add SVG for harmonize two collections tool
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 09:49:36 -04:00
nekrutandClaude Opus 4.6 cdbf13a202 Expand help text and replace SVG for flatten collection tool
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 09:49:31 -04:00
nekrutandClaude Opus 4.6 171f783b6d Expand help text and replace SVGs for filter empty, failed, and null tools
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 09:49:24 -04:00
nekrutandClaude Opus 4.6 8b4c2b92d0 Expand help text and add SVG for filter from file tool
Rewrite help with clearer descriptions of ABSENT/PRESENT modes,
add two-case SVG showing both filtering directions with dual
output collections (filtered + discarded).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 09:49:20 -04:00
nekrutandClaude Opus 4.6 d7be4be858 Expand help text and add SVG for extract dataset tool
Add nested collection explanation with examples showing both flat
list extraction (case A) and list:list mapped extraction (case B).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 09:49:14 -04:00
nekrutandClaude Opus 4.6 574c8d06e9 Expand help text and add SVG for duplicate file to collection tool
Add examples, workflow use case, and a clean SVG schematic showing
a single dataset being duplicated into a list collection.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 09:49:08 -04:00
nekrutandClaude Opus 4.6 10f29805f8 Replace build_list SVG with clean hand-coded diagram
Replace the 207KB Inkscape-generated build_list.svg with a 10KB
hand-coded SVG matching the style of the sample sheet tool diagrams.
Uses abstract labels (Dataset 1, Dataset A, etc.) for all three cases.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 09:49:01 -04:00
nekrutandClaude Opus 4.6 df3f72707b Expand help text and add SVG schematics for sample sheet tools
Add "What is a sample sheet?" sections, concrete examples, and SVG
diagrams to both __CONVERT_SAMPLE_SHEET__ and __SAMPLE_SHEET_TO_TABULAR__
so newcomers understand what sample sheets are and when to use each tool.
Also adds the missing macros import to sample_sheet_to_tabular.xml.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 09:48:54 -04:00
nekrutandClaude Opus 4.6 740da84942 Update build_list help text and SVG image
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 09:48:49 -04:00
nekrutandClaude Opus 4.6 b83647c050 first pass in unifying and clarifying collection operation interfaces and help sections
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-26 09:48:40 -04:00
Marius van den Beek cb25929a82 Merge pull request #22248 from d-callan/datalanding-origins
[26.0] make sure origins for data landings are persisted
2026-03-26 09:48:10 +01:00
Marius van den Beek c39cebab52 Merge pull request #22263 from dannon/purify-sanitize-bug
[26.0] Fix DOMPurify sanitize TypeError in Library components
2026-03-26 09:47:24 +01:00
John Chilton c4374c04d2 Merge pull request #22245 from mvdbeek/sentry_api_bug_issues
[26.0] Delete dummy error controller, fix type error on invalid requests
2026-03-25 23:55:03 -04:00
Dannon 0ce835cafc Merge pull request #22255 from mvdbeek/middleware_improvement
[26.0] Replace BaseHTTPMiddleware with pure ASGI middleware for X-Frame-Options
2026-03-25 21:38:47 -04:00
Dannon 12fc0a8577 Merge pull request #22254 from mvdbeek/drop_stored_workflow_menu_entries
[26.0] Drop stored workflow menu entries from user serialization
2026-03-25 21:38:20 -04:00
Dannon ebe56066d2 Merge pull request #22253 from davelopez/26.0_fix_oauth2_template_validation
[26.0] Fix oauth2 template validation
2026-03-25 21:33:23 -04:00
Dannon Baker ca4f3676f9 Fix DOMPurify sanitize TypeError in Library components
Vue 2's initMethods calls .bind(vm) on every method, which creates a new
function that loses custom properties. The DOMPurify default export is a
callable function with .sanitize() as a property, so binding it strips
sanitize entirely, causing "TypeError: e.purify.sanitize is not a function"
at runtime.

Move purify out of methods/data and into setup() which returns values to
the template without binding. Also fix an import ordering lint issue in
DataTables.vue.

Fixes #22239
2026-03-25 21:09:08 -04:00
David López 5ad3bac893 Merge pull request #22257 from davelopez/26.0_fix_template_optional_integers
[26.0] Fixes optional integer form handling in templates
2026-03-25 17:25:45 +01:00
Danielle Callan 00f633e949 make sure origins for data landings are persisted 2026-03-25 12:02:12 -04:00
davelopez 3b870c5730 Fixes optional integer form handling in templates
Prevents optional integer fields from defaulting to 0 and treats blank input as unset, so empty values no longer get saved as a real number.

Adds test coverage for empty, parsed, and null integer values.
2026-03-25 14:11:14 +01:00
mvdbeek b4cccf538d Drop unused stored_workflow_menu_entries from user
No code consumes this, and we serialize it every time for client
bootstrapping.
2026-03-25 12:52:56 +01:00
Marius van den Beek ff689afa1e Merge pull request #22251 from mvdbeek/fix-n-plus-one-step-jobs-summary
[26.0] Fix N+1 queries in fetch_job_states for jobs_summary endpoints
2026-03-25 12:31:12 +01:00
davelopez a75a02b68e Treat missing template env as server errors
Updates missing vault secrets and environment variables to surface as internal server errors instead of configuration errors.
2026-03-25 12:04:24 +01:00
mvdbeek 67eea395ab Replace BaseHTTPMiddleware with pure ASGI middleware for X-Frame-Options
The @app.middleware("http") decorator uses Starlette's BaseHTTPMiddleware
which buffers the entire response body through an anyio memory channel
between two tasks.

Replace with a pure ASGI middleware that injects the X-Frame-Options
header directly into the response start message, avoiding the buffering
entirely.
2026-03-25 12:02:00 +01:00
Marius van den Beek 25e1cb6b87 Merge pull request #22250 from mvdbeek/validate_replacement_params_string
[26.0] Validate replacement_params values are strings before storing
2026-03-25 11:52:52 +01:00
davelopez d5e5127c1a Adds tests for missing config errors
Improves coverage around misconfigured file source templates and OAuth setup.

Ensures missing environment values and secrets fail with clear configuration errors, and missing OAuth credentials surface an actionable user-facing message for administrator follow-up.
2026-03-25 11:20:09 +01:00
davelopez 389ec42b75 Fixes OAuth template env validation
Fails fast when required secrets or environment variables are missing and no default is provided, instead of letting empty values reach OAuth setup.

Surfaces a clear configuration problem for administrators and a safe user-facing error, preventing downstream OAuth client pair validation failures.
2026-03-25 11:15:35 +01:00
Marius van den Beek a07f74eee1 Merge pull request #22246 from davelopez/26.0_fix_file_source_removal
[26.0] Fix file source removal
2026-03-25 10:25:34 +01:00
mvdbeek 31f6c4d0e9 Fix mypy error in fetch_job_states type annotations
The job_summaries dicts only contain actual values; None only
appears via .get() at the call site, not in the dict itself.
2026-03-25 10:18:16 +01:00
davelopez b85f8a07af Improves remove error feedback
Shows a user-facing error instead of silently do nothing when instance removal fails.

Adds focused coverage for successful and failed removal flows across both supported instance types.
2026-03-24 20:27:33 +01:00
davelopez 835445d748 Fixes removing (hiding) user file sources / object stores
Allows metadata-only updates to skip variable validation when no new variable values are provided.

Prevents hide (remove) operations from failing for instances backed by templates with required variables, while preserving the previously stored values.

Adds regression coverage for both supported instance types to ensure hidden updates remain safe and predictable.
2026-03-24 20:27:31 +01:00
mvdbeek 9d737c14dd Fix N+1 queries in fetch_job_states for jobs_summary endpoints
Replace per-row sa_session.get() calls with batch IN queries,
reducing query count from O(N + 2M) to O(1) where N is the number
of job steps and M is the number of implicit collection job steps.

Before:
  Step listing:          1 query
  Job state lookups:     N queries  (sa_session.get per job)
  ICJ lookups:           M queries  (sa_session.get per ICJ)
  ICJ state aggregation: M queries  (GROUP BY per ICJ)
  Total:                 1 + N + 2M queries

After:
  Step listing:          1 query
  Job state lookups:     1 query   (batch IN)
  ICJ lookups:           1 query   (batch IN)
  ICJ state aggregation: 1 query   (batch IN + GROUP BY)
  Total:                 4 queries

Sentry showed 13.6M individual job SELECTs and 6M ICJ-related
queries over 14 days on usegalaxy.org for this endpoint alone.
2026-03-24 19:12:03 +01:00
mvdbeekandClaude Opus 4.6 f4d574e2aa Validate replacement_params values are strings before storing
Non-string values (e.g. dicts) in replacement_params cause a
ProgrammingError when inserting into the TEXT column of
workflow_request_input_parameters.

Fixes #22247

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 18:23:20 +01:00
Dannon a817722bf7 Merge pull request #22240 from nsoranzo/release_26.0_eslint_fix
[26.0] Fix import order error from ESLint
2026-03-24 11:02:48 -04:00
Dannon 846dcb1324 Merge pull request #22167 from mvdbeek/fix_ambigous_column_job_cache
[26.0] Fix AmbiguousColumn error in job search for tools with long input names
2026-03-24 10:46:11 -04:00
Marius van den Beek 4a15410d9c Merge pull request #22198 from mvdbeek/cached-route-lookup
[26.0] Cache url path lookup
2026-03-24 15:45:56 +01:00
Marius van den Beek 55a4713ce9 Merge pull request #22193 from jmchilton/backport-paired-or-unpaired-fixes
[26.0] Back port collection fixes from #22170.
2026-03-24 15:45:25 +01:00
Marius van den Beek 453c375ae5 Merge pull request #22232 from mvdbeek/optimize-dataset-edit-api
[26.0] Optimize dataset get_edit API by deferring expensive role queries
2026-03-24 15:00:12 +01:00
Dannon bc8abf7f3e Merge pull request #22234 from guerler/fixes.002
[26.0] Fix TypeError in ExternalIdentities by always including provider_label in authnz response
2026-03-24 09:59:02 -04:00
mvdbeek 8e34735d8c Fix handle_controller_exception crash when request has a method parameter
If a request includes a query parameter named `method`, it ends up in
kwargs, and the call to handle_controller_exception unpacks it alongside
the positional `method` argument, causing a TypeError. Pass kwargs as a
plain dict instead of unpacking to avoid any possible collision.

Fixes https://github.com/galaxyproject/galaxy/issues/22243
2026-03-24 14:53:09 +01:00
mvdbeek a129ca81e3 Remove unused error controller that only raises a fake exception
fixes https://github.com/galaxyproject/galaxy/issues/22245
2026-03-24 14:52:54 +01:00
Nicola Soranzo e03707408d Fix import order error from ESLint
Introduced when merging release_25.1 forward in commit
0881413e3e .
2026-03-24 11:39:29 +00:00
Nicola Soranzo 0881413e3e Merge branch 'release_25.1' into release_26.0 2026-03-24 11:09:36 +00:00