All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.13.0 - 2025-01-24
- [breaking] implement encryption scheme logic in storage
- (config) remove a few usages of cfg and add defaults
- add encryption scheme to http and config crates
- (config) add cargo package filled service info fields
- [breaking] add pre-filled package info, description and repository url to the service info endpoint
- (config) implement path-based locations
- (config) parser should ignore
HTSGET_CONFIG
because that gets picked up by the clap Args parser - (config) locations prefix should not be appended to the id so that there is not a double prefix
- service info group, artifact and version, and add flexibility in configuration
- add test for encryption scheme flag
- [breaking] remove deploy directory in favour of https://github.com/umccr/htsget-deploy, keep docker inside docker directory
- (config) add details to service_info config specifying custom values and overriding defaults
- (config) add test for service info
- use
--all-features
in config examples - rename s3-storage to aws and url-storage to url
- (config) ensure all examples and example files are working
- update docs for path-based and regex config
- move cors into advanced and add support for mirrored headers and methods
- add location concept and move advanced config to its own module
- grammar and typos
- fix new clippy warnings
- re-word and simplify, add quick starts where applicable
0.12.0 - 2024-10-16
- (config) allow retrieving secret from binary or string
- allow retrieving c4gh keys from secrets manager
- (storage) ensure c4gh data is read after determining the header size
- (deploy) add options to deploy C4GH keys to secrets manager
- (config) add section on using Secrets Manager to fetch keys
0.11.0 - 2024-09-30
- (config) add configuration values for C4GH S3 and Url storage
- Crypt4GH support using LocalStorage
- explicitly choose aws_lc_rs as the crypto provider
- (deps) bump noodles and tower
- remove
ObjectType
in favour of a more flattened config hierarchy - rename type to backend and clarify experimental feature flag
- (config) slight adjustment to reduce conditionally compiled code branches
- [breaking] make storage config more explicit
- (config) [breaking] remove object type and specify keys directly
- bump noodles and other dependencies
- [breaking] rename c4gh-experimental to experimental
- add more server tests and fix Dockerfile.dockerignore
0.10.1 - 2024-08-04
- (axum) enable http2 support, re-word docs to include htsget-axum
- update rust msrv
- bump Lambda and noodles dependencies
0.10.0 - 2024-05-22
- major dep updates, rustls 0.21 -> 0.23, http 0.2 -> 1, reqwest 0.11 -> 0.12, noodles 0.65 -> 0.74 + minor bumps for other crates depending on these.
- Merge branch 'main' of https://github.com/umccr/htsget-rs into mio_h2_bump
0.9.0 - 2024-05-19
- UrlStorage forwarded header blacklist
- (config) clippy warning
- document UrlStorage header_blacklist option
- update MSRV
- (config) update examples and add openssl certificate example
- [breaking] swap out hyper for reqwest to support redirects
- simplify default resolvers and local storage data
- add links
- add full minio example, rearrange location of compose.yml examples
- remove S3 default on s3-storage feature flag, reword docs for compose deployment
- (deps) update noodles to 0.65
0.8.1 - 2024-01-02
- (deps) further minor dependency changes
- (deps) update noodles to 0.60, new clippy warnings
0.8.0 - 2023-11-02
- (search) remove response scheme because response url can specify it
- (config) add response url to config
- (s3) properly handle first capture group bucket and add warnings for s3 errors
0.7.1 - 2023-09-06
- (deps) properly update noodles and aws dependencies
- (deps) update msrv and attempt using htsget-test as a dev dependency
- bump deps including rustls 0.21
- Merge branch 'main' of https://github.com/umccr/htsget-rs into feat/htsget-elsa
0.7.0 - 2023-07-11
- move hyper client construction to config and copy it to url storage
- (config) [breaking] unflatten tls config making it common across all structs that use it
- [breaking] implement client tls config
- [breaking] add server config to certificate key pair
- [breaking] add stronger types for certificate key pairs
- introduce cert and key parsing into config
- add hyper-rustls for all features
- (config) update docs for combined TLS config
- (config) add tls client config test
- (config) fix tests with new server config structs
- (config) use parsed certificates and keys directly in tests
- update for http client config
0.6.2 - 2023-06-20
- bump deps
0.6.1 - 2023-06-19
- avoid overwriting forwarded headers in url when formatting response
- add tests for extending urls and headers
- (config) make example url storage config runnable with default config
0.6.0 - 2023-06-08
- nightly clippy suggestions
- (config) avoid double new type struct by using named inner field and transparent container attribute
- use http::Uri directly in config
- update remaining dependencies, hold back tokio-rustls due to conflicting versions with actix-web
- update noodles, remove repeated code in search
0.5.0 - 2023-06-02
- (config) add default values to url storage
- add example config files
0.3.0 - 2023-05-29
- implement url formatting for url storage
- (config) use proper url parsing in config
- add option to format logs in different styles
- add error type to config
- [breaking] add tls config to ticket server, rearrange some fields
- use serve_at in data server rather than a constant
- (config) set
Local
resolvers from data server config after parsing theConfig
- (config) add automatic config inference for local and s3 storage, and rearrange modules
- [breaking] simplify storage config by allowing untagged enum representation
- inserting keys with the same name multiple times into headers serializes correctly
- local storage on windows no longer returns urls with incorrect paths
- (config) use set to avoid duplicate key-value pairs in headers
- [breaking] headers should allow multiple values for the same key
- use correct help context for a crate using htsget-config
- (release) Bump all crates to 0.1.2 as explored in release-plz/release-plz#507 (comment)
- (config) clarify which HTTP requests
UrlStorage
will make - (config) update docs for more clarity
- update for UrlStorage
- Merge branch 'main' of https://github.com/umccr/htsget-rs into feat/url_storage
- [breaking] rename AwsS3Storage to S3Storage in search
- [breaking] http refactor, pass request with query
- remove s3-storage as default
- (config) rename ResolveResponse functions
- (config) add logic for url storage in resolvers
- Merge branch 'main' of https://github.com/umccr/htsget-rs into feat/url_storage
- (config) add documentation for endpoint when using S3 storage
- Merge branch 'main' of https://github.com/umccr/htsget-rs into feat/actix-tls
- (config) fix typo
- (config) rename test
- (config) add tests for resolving responses
- (config) fix incorrectly using resolved id when searching for regex capture groups
- a few style changes, changed default resolver
- (config) add tests for default tagged storage type
- (config) document new features and how to use them
- [breaking] rename
HttpTicketFormatter
and removeUrlFormatter
implementation for it - [breaking] move htsget structs to config, and resolve storage type in config
- (config) leverage tagged enum types to allow selecting storage type without manually specifying config values
- manually bump crate versions to 0.1.4
- bump crate versions to 0.1.3 manually
- [breaking] move CertificateKeyPair to config to simplify data server logic
- release
- Downgrade release after fixing cargo publish circular dep issues as discussed in release-plz/release-plz#507 (comment)
- Update cargo files (#152)
- release (#148)
- Set MSRV on all sub-crates (#146)
- Better CI (#98)
- add missing environment variable options
- remove unnecessary default column for environment variables, surround environment variables in backticks.
- reword resolvers description
- clarify how the resolvers work
- reword usage string
- remove duplicate config module
- Merge branch 'main' of https://github.com/umccr/htsget-rs into more-flexible-config-rename
- fix feature flag compile errors
- add test for long resolvers from environment variable config
- fix broken data server optional by introducing boolean flag to enable data server
- add documentation for reworked config
- flatten data server config
- clippy and fmt
- update config file with default values, add option to print a default config
- allow specifying tags, reference names, fields with an 'All' value
- remove setters, add constructors, add documentation.
- reduce some options for cors, remove repeated code when configuring cors
- fix tests affected by config, change some default values and move around config options
- remove custom deserializer for None option and instead use custom enum
- fix logic involving allowed attributes
- apply changes to other crates from reworked config
- update getter return types
- deserialize empty string as None value
- add cors tests and environment variable tests
- remove public fields, add public getters
- allow configuring multiple data servers
- add expose headers cors option
- move cors config to separate file
- add case insensitive aliases to enum variants
- add allow origins, and separate out tagged and untagged enum variants
- add generic allow type configuration option for allow headers and allow methods
- add cors max age option
- add cors allow header types for cors config
- add CorsConfig shared struct
- add UrlResolver, separate data server config from resolver
- fix errors relating to new config
- use figment instead of config because it is simpler to set defaults
- move config into separate module
- add tests for checking for contained value in interval
- implement query matcher logic
- move fields, tags, no tags, query, and interval to config
- add separate config for local server and s3 storage
- add config file from command line or env option
- swap out envy for config dependency
- Add documentation for cors
- Implement configurable origin for cors
- Add cors allow credentials option to data server config
- Move data server config to separate struct
- Move server config into separate struct
- Implement cors for htsget-http-actix.
- Add more spans and tracing calls.
- Move tracing setup to config.
- Bump dependencies, fix clippy warnings.
- Improve errors so that they are more informative.
- Update README instructions.
- Add ticker server addr test.
- Clean up code, format, update dependencies.
- Implement non-tls ticket server alongside tls ticket server.
- Fix localstorage path (#86)
- Fix tests and errors (#83)
- Deploy htsget-http-lambda. (#81)
- Enable choosing between storage types. (#80)
- Remove file from localstorage (#79)
- Htsget http lambda (#76)
0.2.0 - 2023-04-28
- use serve_at in data server rather than a constant
- (config) set
Local
resolvers from data server config after parsing theConfig
- (config) add automatic config inference for local and s3 storage, and rearrange modules
- [breaking] simplify storage config by allowing untagged enum representation
- (config) fix typo
- (config) rename test
- (config) add tests for resolving responses
- (config) fix incorrectly using resolved id when searching for regex capture groups
- a few style changes, changed default resolver
- (config) add tests for default tagged storage type
- (config) document new features and how to use them
- [breaking] rename
HttpTicketFormatter
and removeUrlFormatter
implementation for it - [breaking] move htsget structs to config, and resolve storage type in config
- (config) leverage tagged enum types to allow selecting storage type without manually specifying config values
0.1.1 - 2023-01-27
- Set MSRV on all sub-crates (#146)
- Better CI (#98)
- add missing environment variable options
- remove unnecessary default column for environment variables, surround environment variables in backticks.
- reword resolvers description
- clarify how the resolvers work
- reword usage string
- remove duplicate config module
- Merge branch 'main' of https://github.com/umccr/htsget-rs into more-flexible-config-rename
- fix feature flag compile errors
- add test for long resolvers from environment variable config
- fix broken data server optional by introducing boolean flag to enable data server
- add documentation for reworked config
- flatten data server config
- clippy and fmt
- update config file with default values, add option to print a default config
- allow specifying tags, reference names, fields with an 'All' value
- remove setters, add constructors, add documentation.
- reduce some options for cors, remove repeated code when configuring cors
- fix tests affected by config, change some default values and move around config options
- remove custom deserializer for None option and instead use custom enum
- fix logic involving allowed attributes
- apply changes to other crates from reworked config
- update getter return types
- deserialize empty string as None value
- add cors tests and environment variable tests
- remove public fields, add public getters
- allow configuring multiple data servers
- add expose headers cors option
- move cors config to separate file
- add case insensitive aliases to enum variants
- add allow origins, and separate out tagged and untagged enum variants
- add generic allow type configuration option for allow headers and allow methods
- add cors max age option
- add cors allow header types for cors config
- add CorsConfig shared struct
- add UrlResolver, separate data server config from resolver
- fix errors relating to new config
- use figment instead of config because it is simpler to set defaults
- move config into separate module
- add tests for checking for contained value in interval
- implement query matcher logic
- move fields, tags, no tags, query, and interval to config
- add separate config for local server and s3 storage
- add config file from command line or env option
- swap out envy for config dependency
- Add documentation for cors
- Implement configurable origin for cors
- Add cors allow credentials option to data server config
- Move data server config to separate struct
- Move server config into separate struct
- Implement cors for htsget-http-actix.
- Add more spans and tracing calls.
- Move tracing setup to config.
- Bump dependencies, fix clippy warnings.
- Improve errors so that they are more informative.
- Update README instructions.
- Add ticker server addr test.
- Clean up code, format, update dependencies.
- Implement non-tls ticket server alongside tls ticket server.
- Fix localstorage path (#86)
- Fix tests and errors (#83)
- Deploy htsget-http-lambda. (#81)
- Enable choosing between storage types. (#80)
- Remove file from localstorage (#79)
- Htsget http lambda (#76)