Skip to content

Latest commit

 

History

History
867 lines (601 loc) · 34.1 KB

File metadata and controls

867 lines (601 loc) · 34.1 KB

Changelog

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.

[Unreleased]

0.7.0-alpha.3 - 2025-01-22

Added

  • [breaking] Enable fetching concrete service from registry via downcast (#580)

Other

  • [breaking] Rename/move the health_check mod to health::check (#578)
  • [breaking] Remove the App#graceful_shutdown method (#577)
  • Add ExampleHealthCheck to the full example (#576)

0.7.0-alpha.2 - 2025-01-18

Added

  • Map Error::Auth to StatusCode::UNAUTHORIZED HTTP response (#571)
  • [breaking] Return RedisEnqueue and RedisFetch redis pool "new-types" (#568)

Other

  • Remove todos (#570)
  • [breaking] Remove From<Environment> impl for &'static str (#569)
  • Declare all dependencies in workspace (#567)
  • [breaking] Remove deprecated items (#566)

0.7.0-alpha.1 - 2025-01-17

Added

  • [breaking] Allow registering Worker instead of requiring AppWorker (#564)
  • Increase the default cache-control max-age to 1 week (#559)

Fixed

  • Use Router#fallback_service in NormalizePathInitializer (#562)

Other

  • Update config to 0.15.6 (#560)

0.7.0-alpha - 2025-01-14

Added

  • Support sidekiq balance strategy and dedicated queues (#543)

Fixed

  • [breaking] Propagate Validate calls to all app config fields (#557)

Other

  • [breaking] Update bb8 to v0.9 and sidekiq-rs to 0.13.1 (#555)
  • Add some details to config book page (#553)
  • Upgrade various crates that are used internally (#551)
  • [breaking] Upgrade Axum to 0.8 and Aide to 0.14 (#548)
  • Enable nightly coverage feature (#545)

0.6.24 - 2024-12-28

Added

  • Add cache-related middlewares (#541)
  • Add timestamps for when email change is confirmed (#537)
  • Add User column to store the user's new email before it's confirmed (#536)

0.6.23 - 2024-12-24

Added

  • Enable redacting timestamps from insta snapshots (#532)
  • Add AppWorker#enqueue_delayed (#531)

0.6.22 - 2024-12-07

Added

  • Add AppContextWeak to prevent reference cycles (#529)

0.6.21 - 2024-12-01

Other

  • Update OTEL patch version and remove a deprecated fn call (#527)
  • Update Loco comparisons and add some links to other sections (#522)
  • Add mailpit to SMTP dev server examples (#521)
  • (deps) bump codecov/codecov-action from 4 to 5 (#517)
  • Upgrade otel/tracing dependencies (#516)

0.6.20 - 2024-11-17

Added

  • Enable converting roadster::Error to sidekiq::Error (#514)

Other

  • Use MockProvideRef<DatabaseConnection> in an example test (#513)

0.6.19 - 2024-11-16

Added

  • Provide and ProvideRef traits to provide AppContext objects (#510)

0.6.18 - 2024-11-15

Added

  • Add support for redacting postgres/redis/smtp URIs (#507)

Other

  • Add smtp4dev to example local SMTP servers (#506)

0.6.17 - 2024-11-12

Added

  • Add support for TestContainers (pgsql + redis modules) (#503)

Other

  • Update thiserror to 2.x (#499)
  • Update validator crate (#497)

0.6.16 - 2024-10-28

Added

  • Add config to specify the domain where the service is hosted (#490)

0.6.15 - 2024-10-22

Added

  • Case-insensitive username and email fields (#480)

0.6.14 - 2024-10-21

Added

  • Add AnyMiddleware to minimize boilerplate for Axum middleware (#472)
  • Add AnyIntializer to minimize boilerplate for Axum Router initializers (#475)

Other

  • Add leptos-0.7 example (#465)

0.6.13 - 2024-10-19

Fixed

  • Only attempt to load yaml files when config-yaml is enabled (#451)

Other

  • Use FromRef from axum-core instead of axum (#450)

0.6.12 - 2024-10-17

Added

  • Enable writing config files in YAML (#446)

0.6.11 - 2024-10-17

Fixed

  • Fix trace message for health checks on startup (#443)

Other

  • Add loco comparison (#444)

0.6.10 - 2024-10-16

Added

  • Enable consumers to provide custom Environment values (#439)

0.6.9 - 2024-10-15

Added

  • Add AppContext::smtp method to alias to AppContext::mailer (#409)
  • Create documentation website using mdbook. The website can be found at roadster.dev.

Other

  • Update sea-orm (#434)
  • Create SECURITY.md (#420)
  • Create CODE_OF_CONDUCT.md (#419)

0.6.8 - 2024-10-11

Added

  • Allow configuring which req/res body content types to log (#407)

0.6.7 - 2024-10-11

Added

The main feature included in this release is support for sending emails via Sendgrid's Mail Send API. See the below items for more details.

  • Set sandbox mode on Sendgrid message based on config (#403)
  • Add Sendgrid client to AppContext (#402)
  • Add support to config for email via Sendgrid (email-sendgrid feature) (#401)

Other

  • Add note to readme about supporting Sendgrid (#405)
  • Add example of using Sendgrid client (#404)

0.6.6 - 2024-10-10

Added

  • Allow configuring the interval at which metrics are exported (#399)

0.6.5 - 2024-10-09

Added

The main feature included in this release is support for sending emails via SMTP. See the below items for more details.

  • Add SmtpHealthCheck (#396)
  • Allow specifying the smtp port via config (#395)
  • Add smtp client to AppContext (#391)
  • Add support to config for email via SMTP (email-smtp feature) (#388)

Fixed

  • Fix config value used for timeout of health check in api and cli (#397)

Other

  • Add example of sending email using lettre smtp client (#394)
  • Add doc comment explaining how NormalizePathLayer works (#393)

0.6.4 - 2024-10-05

Other

  • Update dependencies (#386)
  • Disable default features for rstest (#380)

0.6.3 - 2024-09-15

Added

  • Add more builder methods for RoadsterApp (#370)
  • Builder-style API for App (#367)

Other

  • Add logs for successful health checks (#371)

0.6.2 - 2024-08-30

Added

  • Allow specifying a custom config dir (#361)
  • Add lifecycle handlers (#360)

0.6.1 - 2024-08-28

Added

  • Allow running CLI commands without requiring DB/Redis connections (#353)

Other

  • Update typed-builder and several examples' dependencies (#352)

0.6.0 - 2024-08-25

Added

  • Add a public method to decode a JWT from a string (#348)
  • Mark refresh token headers as sensitive (#347)
  • Make the User sea-orm migration enum public (#346)
  • Allow splitting config files into many files in env directories (#344)
  • [breaking] App methods take self (#337)
  • Remove cookie extraction for Jwt, but allow it in JwtCsrf (#332)
  • Allow custom sub-claims in provided Claims types (#331)
  • Allow jwt from cookie, but only if it's explicitly requested (#329)

Fixed

  • [breaking] Don't expect a "Bearer" token in the auth token cookie (#340)

Other

  • Update leptos example to use site-addr and env from roadster config (#341)
  • sea-orm workspace dep and upgrade to 1.0.0 (#336)
  • [breaking] Update tower to 0.5.0 (#334)

0.5.19 - 2024-08-12

Added

  • Redact bearer tokens in insta snapshots (#325)

Fixed

  • Do not simply use bearer token from cookie for auth (#326)
  • Derive Clone in JWT claim types (#323)
  • Implement From for various Subject enum variants (#323)
  • Use leptos_routes in leptos example instead of leptos_routes_with_context (#322)

Other

  • (deps) Bump EmbarkStudios/cargo-deny-action from 1 to 2 (#319)

0.5.18 - 2024-08-05

Other

  • Update rstest dependency (#318)

0.5.17 - 2024-08-05

Fixed

  • Extract jwt as a bearer token from cookies (#316)

0.5.16 - 2024-08-04

Added

  • Extract JWT from cookie (#314)
  • Derive OperationIo for Jwt struct (#311)
  • Change user.last_sign_in_at column to non-null with default (#312)

Other

  • Add pre-commit hook to check formatting (#313)

0.5.15 - 2024-08-01

Added

  • Allow configuring the max len for the ReqResLoggingMiddleware (#309)

0.5.14 - 2024-08-01

Added

  • Enable ReqResLogging middleware by default, but disable in prod (#307)

0.5.13 - 2024-07-31

Added

  • Add middleware to log the request/response payloads (#304)
  • Log errors at debug level in IntoResponse impl (#303)

0.5.12 - 2024-07-29

Added

  • PasswordUpdatedAt column + auto-update with a fn and trigger (#301)

0.5.11 - 2024-07-26

Added

  • Migration to enable the uuid-ossp Postgres extension (#297)
  • Add non-pk versions of uuid schema helper methods (#296)

0.5.10 - 2024-07-25

Added

  • Use IDENTITY column for int primary keys instead of BIGSERIAL (#293)

Fixed

  • Add "if exists" to user's drop_table migration statement (#292)

Other

  • Add tests for schema and check helper methods (#289)

0.5.9 - 2024-07-24

Added

  • Auto-update timestamp columns (#287)
  • Add SeaORM migrations and utils to create user table (#284)

Other

  • Disallow unwrap and expect except in tests (#286)

0.5.8 - 2024-07-22

Other

  • Remove the update justfile command (#282)
  • Use the main project README.md as the library's top-level docs (#281)

0.5.7 - 2024-07-22

Other

  • Update dependencies (#279)

0.5.6 - 2024-07-22

Added

  • Add TestCase utility for configuring insta settings (#277)

0.5.5 - 2024-07-08

Added

  • Allow configuring the tracing log output format (#275)

0.5.4 - 2024-07-07

Added

  • Add method to prepare the app separately from running it (#270)

Fixed

  • Correctly add the ApiRouter to the HTTP service's ApiRouter (#273)

Other

  • Fixes for default openapi docs (#271)

0.5.3 - 2024-07-04

Other

  • Update the _health HTTP API docs (#267)

0.5.2 - 2024-07-02

Added

  • Allow configuring the max duration of health checks (#264)

0.5.1 - 2024-07-02

Added

  • Place health check results under resources in response (#261)

Other

  • Fix typos in README (#260)

0.5.0 - 2024-07-01

Added

  • [breaking] Remove interior mutability of HealthCheckRegistry (#258)

0.4.0 - 2024-07-01

Added

  • [breaking] Implement health check API using HealthCheck trait (#255)
  • [breaking] Switch to Axum's FromRef for custom state (#250)

Other

  • [breaking] Remove deprecated items in preparation of 0.4 release (#253)
  • Add example for integrating with Leptos (#252)
  • Use small number of sidekiq workers for full example in dev/test (#251)

0.3.5 - 2024-06-24

Fixed

  • Health check config is missing a custom field (#246)

Other

  • Check PR title for compliance with conventional commits (#247)

0.3.4 - 2024-06-23

Added

  • Add health checks to run before starting services (#242)
  • Add From impl to convert db config to ConnectOptions (#240)
  • Move sidekiq "stale cleanup" to new before_run service method (#239)

Other

  • Add dependabot config to update github actions weekly (#243)
  • Update READMEs to use __ as the env var separator instead of .
  • Update list of UI frameworks in readme
  • Set up cargo deny

0.3.3 - 2024-06-21

Fixed

  • Invalid env var separator on bash

Other

  • Add inclusive language check to CI
  • Fix clippy error
  • Remove non-inclusive language

0.3.2 - 2024-06-14

Other

  • Run Feature Powerset checks + perform a release twice a week
  • Add goals and future plans to readme + some getting started steps
  • Add github action to verify commits follow 'Conventional Commits' format

0.3.1 - 2024-06-11

Other

  • Implement the health check API as a protocol agnostic core module
  • Minor changes to the FunctionService doc example

0.3.0 - 2024-06-10

Other

  • Fix minimal version of serde
  • Add #[non_exhaustive] to public enums
  • Add Add #[non_exhaustive] to public structs
  • Enable grpc by default in the full example
  • Add support for tower's CORS middleware
  • Add AppMetadata struct + App::metadata method and add version to otel
  • Run doctests as part of test and test-watch just commands
  • Update readme to include grpc and generic function service
  • Update FunctionService doctest to only run with default features
  • Add a generic app service to run an async function as a service
  • Move semver checks to a separate workflow
  • Use depth 3 in feature powerset
  • Install protoc in feature powerset workflow
  • Remove the old deprecated cli mod
  • Add basic grpc example
  • Add basic support for serving a gRPC service
  • Update rstest

0.2.6 - 2024-06-03

Other

  • Add builder method to add middleware for the sidekiq processor
  • Declare minimal version of dependencies that's actually needed
  • Add cargo-minimal-versions for direct dependencies

0.2.5 - 2024-06-03

Other

  • Only test the AppConfig#test method when all (most) features are enabled
  • Hard-code the number of sidekiq workers to avoid snapshot failures
  • Ignore a clippy error
  • Ignore coverage for the AppConfig#test method
  • Provide config defaults via config files
  • Move database and tracing mods to directories
  • Upgrade dependencies

0.2.4 - 2024-05-31

Other

  • Upgrade dependencies

0.2.3 - 2024-05-27

Other

  • Remove http feature gate for api mod
  • Move cli mod to be a child of the api mod
  • Add semver checks to CI
  • Revert "Use stable rust for coverage"

0.2.2 - 2024-05-26

Other

  • Add latest version of time to workaround build issue on nightly

0.2.1 - 2024-05-26

Other

  • Add missing needs field to powerset_clippy workflow step
  • Run separate jobs for each feature powerset check

0.2.0 - 2024-05-26

Other

  • Add custom error type using thiserror
  • Fix incorrect feature flag used on import statement
  • Allow partial overrides of all configs
  • Remove mock AppContext and use a concrete version in tests instead
  • Add a small description for the validate-codecov-config just cmd
  • Use automock to mock traits instead of the mock! macro
  • Use github discussions instead of discord (for now at least)
  • Add tests for controller config methods
  • Fix exiting the app when a cli command is handled
  • Allow running the release_pr workflow manually
  • Add code owners to automatically request reviews on PRs
  • Add documentation for the TestCase utility class
  • Use stable rust for coverage
  • Add tests for sidekiq builder and roadster cli
  • Run release pr workflow with manual dispatch
  • Separate different parts of the app::start method into respective mods
  • Add tests for the DefaultRoutes config validator
  • Fix DefaultRoutes validator when open-api feature is not enabled
  • Add validation of the AppConfig
  • Add deps.rs badge to readme
  • Group http and open-api features in the feature_powerset workflow
  • Update the codecov PR comment config
  • Add tests for remove_stale_periodic_jobs
  • Update dependencies that can be updated
  • Add a feature flag to entirely disable the http service
  • Add comments to justfile
  • Update dependencies and add just command to update deps
  • Add MSRV tag to readme
  • Add MSRV and add CI step to validate
  • Add some tests for SidekiqWorkerServiceBuilder
  • Add justfile
  • Add tests for SidekiqWorkerService::enabled
  • Fix clippy warning
  • Allow unknown cfg in coverage workflow
  • Disable coverage for tests
  • Enable running coverage using the nightly toolchain
  • Add tests for the Middleware::priority methods for each middleware
  • Add tests for the Middleware::enabled method for each middleware
  • Add tests for the default_middleware and default_initializers methods
  • Add tests for middleware/initializer registration in HttpServiceBuilder
  • Don’t use coverage(off) for now because it’s unstable
  • Use coverage instead of coverage_nightly
  • Apply coverage(off) directly to the desired method
  • Use coverage(off) only with cfg_attr(coverage)
  • Disable coverage for service mod test impls
  • Add small test for service builder
  • Remove async-std from dev deps
  • Remove Tokio from non-async test
  • Use Tokio for rstest tests
  • Run cargo upgrade to update dependencies
  • Update the code coverage comment format
  • Set up mocking using mockall crate
  • Do some test cleanup
  • Add test for route that isn't documented
  • Add test for the HttpService::list_routes method/cli command
  • Rename the custom context in the minimal example
  • Remove unnecessary From... impl for AppContext
  • Pass config and context by reference in all public APIs
  • Custom state as member of AppContext
  • Add methods to AppContext instead of direct field access
  • Fix codecov config
  • Add tests to serde_util
  • Add codecov config file
  • Update instructions to run CI locally
  • Add coverage badge to the readme
  • Add workflow to generate code coverage stats
  • Disallow registering things multiple times
  • Create FUNDING.yml
  • Update feature_powerset.yml schedule
  • Rearrange and enhance the status badges in the readme
  • Add a Discord badge
  • Have docs.rs pass --all-features to ensure all features have docs built

0.1.1 - 2024-05-05

Other

  • Only run the release workflow on main
  • Install missing nextest dependency for feature powerset
  • Add crates.io and docs.rs badges
  • Run the release workflow after the Feature Powerset workflow succeeds

0.1.0 - 2024-05-05

Other

  • Set publish = false in the minimal example Cargo.toml
  • Set publish = true in the Cargo.toml
  • Remove fetch depth of 0 from CI and feature powerset
  • Automate releases with release-plz
  • Use fetch depth of 0 in CI
  • Remove lazy_static dependency
  • Use the nextest test runner
  • Upgrade dependencies in Cargo.tomls
  • Fix the graceful shutdown of the sidekiq service
  • Timeout the ping redis method so the health route can return without fully timing out
  • Implement the sidekiq processor task as an AppService
  • Move middleware/initializers to service/http module
  • Add ServiceRegistry and restructure configs
  • Add AppService trait and use it to implement the HTTP service
  • Add example worker and api to the minimal example
  • Don't run Processor depending on configs
  • Use a separate redis connection pool for enqueuing vs fetching jobs
  • Remove url::Url import from app_config.rs for sidekiq feature
  • Allow configuring the number of sidekiq worker tasks
  • Remove stale periodic jobs
  • Enable registering periodic workers
  • Check disk usage between feature powerset workflow steps
  • Add defaults for AppWorkerConfig's builder
  • Add RoadsterWorker to provide common behaviors for workers
  • Add instructions for RedisInsight to the readme
  • Add standalone sidekiq dashboard instructions to readme
  • Clean between powerset build stages
  • Skip and group features to reduce powerset size
  • Use cfg feature flag instead of allowing unused import
  • Add feature flag to enable exporting traces/metrics using otel
  • Add to list of features in readme
  • Add CLI command to print the app config
  • Add CLI commands to run DB migrations
  • Add CLI command to generate an openapi schema
  • Allow private intra doc links for rustdoc
  • Add CLI command to list API routes
  • Set up roadster CLI and custom app CLI
  • Fix the cron used for feature_powerset.yml workflow
  • Remove a cfg that caused a build error
  • Add doc comment for Initializer::priority
  • Allow using custom App::State in Initializer and Middleware traits
  • Remove debugging outputs
  • Fix step names used to define outputs
  • Add missing runs-on field
  • Add debugging log to workflow
  • Add log of label name
  • Use uniq job output names
  • Fix error in feature_powerset.yml
  • Allow triggering the feature powerset check by adding a lable to a pr
  • Add missing cfg for the open-api feature
  • Fix a powerset build error
  • Add Swatinem/rust-cache@v2 to cache rust builds
  • Update checkout action version
  • Add workflow_dispatch event to feature_powerset.yml
  • Add github workflow to run checks against the powerset of features
  • Remove "all features" job b/c it's a duplicate of the cargo hack job
  • Use cargo hack --each-feature instead of --feature-powerset
  • Add openid jwt claims
  • Minor changes
  • Fix build break with all features disabled
  • Enable reporting traces/metrics via an otlp exporter
  • Use snake case in github ci job
  • Add RequestDecompressionMiddleware
  • Add more crate-level documentation
  • Create LICENSE
  • Move workspace declaration to the bottom of the Cargo.toml
  • Fix a rustdoc::all warning
  • Remove --no-dev-deps where it can't be used in github ci workflow
  • Use cargo hack to test feature powerset
  • Update cargo checks
  • Fix cargo fmt command
  • Create workspace that includes the examples
  • Set working dir for examples job
  • Add a minimal example
  • Don't run clippy against deps in ci
  • Add CI badge to the readme
  • Update checkout action to v4
  • Add workflow stage to run checks for all features
  • Add missing checkout in workflow
  • Use custom husky hooks
  • Add github workflow to run checks with all feature combinations
  • Add feature flag for generating openapi schema using aide
  • Add feature flag for the SQL db
  • Add feature flag for sidekiq
  • Add RequestBodyLimitMiddleware
  • Add TimeoutLayer middleware
  • Add instructions for generating an html coverage report
  • Use JoinSet instead of TaskTracker
  • Make the Jwt claims type generic and use Claims as the default
  • Add notes on background job queue options
  • Add JWT extractor with basic Claims impl for default/recommended claims
  • Add logs for sidekiq queues
  • Add ping latencies to health check response
  • Allow configuring the max number of redis connections
  • Don't bail early in graceful shutdown if an error occurred.
  • Minor string change
  • Remove instrument from cancel_on_error
  • Remove log from dependencies
  • Improve graceful shutdown logic
  • Always run shutdown logic and don't require consumer to run it
  • Add token cancelation drop guard, and add doc comment recommending to use the default shutdown signal
  • Add logs for installing middleware
  • Add compression middleware
  • Remove stray log
  • Add catch panic middleware
  • Add graceful shutdown signal
  • Add rusty-sidekiq for running async jobs
  • Add _health route to check the health of the service
  • Enable migrations
  • Add SeaORM integration
  • Enable custom configs for initializers
  • Add Initializer with various hooks, and add NormalizePathInitializer
  • Minor change to concat middleware vecs inline
  • Don't require consumers to include default middleware
  • Reorder default middleware -- order determined by config now
  • Enable providing configs for custom middleware
  • Enable configuring middleware
  • Add environment to the AppConfig
  • Add OpenAPI docs + spec routes
  • Add tracing middleware
  • Add request id middleware
  • Allow middleware installers to return a result
  • Enable adding middleware and provide defaults
  • Require custom state to be convertable to AppContext
  • Add default _ping route
  • Enable defining routes using Axum or Aide routers
  • Use From trait instead of a custom trait
  • Re-order dependencies in Cargo.toml
  • Add App trait and allow providing a custom state
  • Add app entrypoint
  • Init tracing
  • Add basic configuration support
  • Remove .idea directory
  • Remove Cargo.lock from git
  • Move cargo-husky to dev-deps
  • Prevent publishing for now
  • Add cargo-husky
  • Init and add empty rust lib project