-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Is your feature request related to a problem?
No. This is an enhancement to improve the submission workflow for performance archives.
Describe the solution you'd like
Add support for uploading compressed performance archives (.tar.gz, .tgz, .zip) directly through the frontend.
The frontend currently supports only structured form submission. This enhancement would allow users to upload a packaged E3SM performance archive and have the backend extract, validate, and ingest it using the existing performance file specifications.
Example sources (these will be ingested automatically):
- LCRC: /lcrc/group/e3sm/PERF_Chrysalis/performance_archive
- NERSC: /global/cfs/projectdirs/e3sm/performance_archive
These archives contain performance timing data, case configuration, and git metadata captured at runtime.
Proposed behavior
- Add a file upload input to the Submit Simulation page.
- Accept:
.tar.gz.tgz.zip
- Client-side validation:
- Restrict file extensions.
- Enforce maximum file size.
- Send archive via multipart upload to a dedicated endpoint (e.g.,
POST /simulations/upload). - Backend:
- Safely extract archive (prevent path traversal).
- Validate required files based on
FILE_SPECS. - Run existing parsers.
- Return structured validation errors if validation fails.
Required files inside the performance archive
Based on the updated FILE_SPECS, the following files are required:
Root directory:
e3sm_timing..*..*CaseStatus..*.gzGIT_DESCRIBE..*.gz
casedocs/ directory:
README.case..*.gzenv_case.xml..*.gzenv_build.xml..*.gz
Optional (ingested if present):
Root directory:
GIT_CONFIG..*.gzGIT_STATUS..*.gz
Validation rules:
- Filenames must match the expected regex patterns.
- Files must be located either in the archive root or under
casedocs/as specified. - If any required file is missing or does not match the expected pattern or location, ingestion fails.
- Error responses must explicitly state which required spec failed (e.g., missing
env_case.xml..*.gzincasedocs/).
Describe alternatives you've considered
-
Continue form-only submission.
- Simpler frontend.
- Requires manual file handling.
- Higher likelihood of incomplete or inconsistent submissions.
-
CLI-only archive ingestion.
- Avoids frontend changes.
- Excludes users who rely on the web interface.
Archive upload aligns with how performance data is generated and archived on LCRC and NERSC systems, reducing manual steps and ingestion errors.
Additional context
This enhancement applies specifically to E3SM performance archives, not general simulation output directories.
Implementation requirements:
- Frontend multipart upload support.
- Backend secure archive extraction.
- Strict validation against
FILE_SPECS. - Deterministic, structured error reporting.
This extends the submission workflow without removing the existing form-based option.