Release Notes
0.3.4 [2026-02-06]
Fixes:
- Increased retry attempts from 5 to 7 for
resolve_flywheel_path()to improve resilience against transient server errors - Increased retry attempts from 3 to 7 for
_upload_output_with_retry()to improve upload reliability
0.3.3 [2026-01-31]
Fixes:
- Added retry logic with exponential backoff to
resolve_flywheel_path()function to handle transient server errors (500, 502, 503, 504) when looking up containers and files
Maintenance:
- Moved
resolve_flywheel_path()function fromparser.pytoutils.pymodule - Added comprehensive test coverage for retry behavior in
resolve_flywheel_path()and_upload_output_with_retry()functions
0.3.2 [2026-01-29]
Fixes:
- Fixed file naming conflicts when batch contains multiple files with same name by prefixing output files with index numbers
- Added retry logic with exponential backoff for transient HTTP errors (5xx) during file uploads to improve reliability
- Fixed analysis input tracking by including source file references when creating analyses
Maintenance:
- Added
backoffdependency for implementing retry logic
0.3.1 [2025-12-17]
Maintenance:
- Updated
pythonfrom3.12.11to3.12.12
0.3.0 [2025-11-04]
Enhancements:
- Added batch signing mode to sign multiple files from a CSV manifest in a single operation
- Added verify mode to check the authenticity and integrity of previously signed files
- Added
run_modeconfiguration parameter with three modes:sign,batch_sign, andverify - Added CSV format validation with detailed error messages for batch operations
- Added Flywheel path parser supporting project, subject, session, and acquisition level files
- Added batch processing with automatic analysis container creation at source file locations
- Added batch summary JSON output with success/failure counts and analysis IDs
- Added per-row signature purpose support in batch mode
- Added test script
generate_fw_testbed.pyto create Flywheel test environments - Enhanced MFA verification to support batch operations with single authentication
- Enhanced error handling with detailed logging and stack traces
- Changed
signature_purposeconfiguration to use predefined enum values with 12 standardized options - Changed default
signature_purposefrom "No reason provided" to "Initial Data Entry Completed" - Changed default
debugconfiguration fromfalsetotrue
Fixes:
- Fixed MFA code handling in verify mode where authentication is not required
Maintenance:
- Updated
pythonfrom3.12.7to3.12.11 - Updated test coverage requirement from 70% to 87%
- Added comprehensive test suite for CSV parsing, path resolution, batch processing, and analysis uploads
- Added
conftest.pywith shared fixtures for testing
Documentation:
- Added detailed run modes section explaining
sign,batch_sign, andverifymodes - Added CSV format specification with Flywheel path syntax and validation rules
- Added workflow diagrams for all three run modes
- Added batch signing examples with multi-purpose and reading study use cases
- Enhanced configuration documentation with detailed parameter descriptions
0.1.2 [2025-08-18]
Fixes:
- Added
USER flywheeldirective toDockerfilefor improved container security
Maintenance:
- Migrated from
poetrytouvfor dependency management - Updated
Dockerfileto useuv pip installinstead ofpip install - Reformatted all Python imports to follow standard ordering (stdlib, third-party, local)
- Added
ruff: noqa: PLR0913directive to suppress too-many-arguments warning inmain.py:run() - Removed
pytesthook from.pre-commit-config.yaml - Updated build system from
poetry.core.masonry.apitohatchling.build - Migrated
pyproject.tomlto PEP 621 format
Documentation:
- Fixed markdown formatting in
CONTRIBUTING.mdto use inline link syntax
0.1.1 [2024-11-18]
Enhancements:
- Added digital signature functionality for text files, PDFs, and binary files using RSA encryption
- Implemented multi-factor authentication (MFA) verification via Twilio for secure file signing
- Added signature verification capability to validate file integrity and authenticity
- Introduced signature purpose tracking with predefined clinical trial workflow options
- Added support for embedding signatures in text files using zero-width characters
- Added support for embedding signatures in PDF metadata
- Added support for signing binary files with ZIP archive packaging
Documentation:
- Added comprehensive README with gear overview, configuration, and usage instructions
- Added CONTRIBUTING guide with setup, development, and workflow instructions
- Added FAQ file for common questions and troubleshooting
Maintenance:
- Added GitLab CI/CD pipeline configuration with test coverage threshold
- Added pre-commit hooks for code quality checks including
ruff,pytest,hadolint,markdownlint, andyamllint - Added
.dockerignoreto optimize Docker build context - Added Dockerfile based on
flywheel/python:3.12-alpine - Added dependency management with
poetryincludingflywheel-gear-toolkit,flywheel-sdk,pikepdf,cryptography,twilio, andbackoff - Added comprehensive test suite with 70% coverage requirement
- Added MIT License
- Added utility scripts for key generation (
keygen.py) and key encoding (encode_key.py) - Added verification script (
verify_file.py) for signature validation