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.
x-clacks-overhead
header added to maintain feature parity with boltzmannclap
feature of thepetname
dependency disabled to improve build times
- Update to preroll 0.10
- Update to tracing-subscriber 0.3
This release changes test database naming inference and /monitor/ping
output.
- Change:
/monitor/ping
now randomly generates a human-readable name at start-up, and will reply with that for the process duration. - Change: the default postgres test database name is now
{crate_name}-test
.
- Support for overriding
host
,name
andport
for the postgres test database.
This release comes with a minor change to the debug (development) mode defaults.
- Change:
LOGLEVEL
defaults toinfo
rather thandebug
in debug mode.
- Update to surf 2.3
- Update to env_logger 0.9
- The exported test assertion helpers now use
#[track_caller]
to have better error location / backtrace output.
lambda-http
: This feature flag now actually works. (Oops.)
lambda-http
: No longer disables the logging middleware.
- New
"lambda-http"
feature, which changes the HTTP listener to connect to an AWS Lambda execution environment.- Is no longer reachable as a regular http server, but accepts http lambda requests as if it were one.
- Some environment variables, such as
PORT
, are disregarded. - If the
"honeycomb"
feature is enabled, trace events are written to stdout, and must be collected via a layer provided by Honeycomb. See: https://docs.honeycomb.io/getting-data-in/integrations/aws/aws-lambda/
- The default backend for the included Surf http client has changed from libcurl (via Isahc) to http-client's async-h1 client.
honeycomb
: Environemtn variables now start withHONEYCOMB_
rather thanHONEYCOMBIO_
.- Consistency with other honeycomb SDK's.
honeycomb
:HONEYCOMBIO_WRITE_KEY
is nowHONEYCOMB_WRITEKEY
(required).- Consistency with other honeycomb SDK's.
honeycomb
: AddedHONEYCOMB_SAMPLE_RATE
environment var usage.
postgres
: Added aPGMAXLIFETIME
environemnt variable, set in minutes.
honeycomb
: Switched back totracing-honeycomb
and upgraded to0.3
.- This allows patch upgrades to be picked up via
cargo update
, and is otherwise identical to0.2.1-eaze.7
.
- This allows patch upgrades to be picked up via
honeycomb
: Added events for generic Request/Response http properties.- Changed the ordering of json log fields to be better for plaintext viewers.
- Fixed hostname resolution in
/monitor/status
.
- Dependency upgrade to eaze-tracing-honeycomb 0.2.1-eaze.7
honeycomb
: This fixes a deadlock. See this commit for details.
honeycomb
: Fixed timestamps to correctly be from spans/events.- Dependency upgrade to eaze-tracing-honeycomb 0.2.1-eaze.6
honeycomb
: Sub-millisecond "duration_ms" using f64.- Dependency upgrade to eaze-tracing-honeycomb 0.2.1-eaze.5
- Enables Postgres trace events.
- Dependency upgrade to tide-sqlx 0.6.0
- Dependency upgrade to eaze-tracing-honeycomb 0.2.1-eaze.4
- Reduce dependency footprint from async-std.
- Avoids wasm-related features.
- Dependency upgrade to sqlx 0.5 & tide-sqlx 0.5 for the
postgres
feature.
- Fixes
X-Honeycomb-Trace
header parsing.- Under the hood, this meant a switch to the Eaze fork of tracing-honeycomb.
- Avoid causing http errors on invalid
X-Honeycomb-Id
andX-Request-Id
.- Instead, these get logged.
- Updated the
"honeycomb"
feature to respect the"HONEYCOMBIO_DATASET"
environment variable when possible.
The same as 0.3 but with a forgotten update to Tide 0.16.
- Dependency upgrade to Tide 0.14 & tide-sqlx 0.4.
- Removed the
"custom_middleware"
feature, is now automatically part of the optional arguments forpreroll::main!
. - Changed
preroll::main!
to acceptVariadicRoutes
instead of variable macro arguments. - Changed
preroll::test_utils::create_client
to acceptVariadicRoutes
, enabled api versioned testing. - Changed assertions to always unwrap and panic immediately rather than return a
Result
. - Changed assertions to accept
AsMut<http_types::Response>
rather thansurf::Response
. - Added more test assertion helpers to
preroll::test_utils
. - Added
/monitor/status
built-in endpoint to expose useful status information. - Updated all documentation with major additions, overhauls, and examples.
- Improved the standalone example / test subproject.
- Improved internal CI.
- Changed the api mounting point to be versioned - e.g.
/api/v1
.- This is based on argument position of the route handlers provided to
preroll::main!
.
- This is based on argument position of the route handlers provided to
- Changed routes setup function to instead receive
Route<'_, Arc<AppState>>
. - Added
"test"
feature (makes UUIDs such ascorrelation_id
be constant an nil). - Added
"custom_middleware"
feature to add an extra hook intopreroll::main!
. - Added an always-enabled
GET /monitor/ping
which responds only withservice_name
.- This is excluded from middleware.
- Added a debug-mode-only
GET /internal-error
for easy testing. - Exposed and documented
JsonError
. - Improved http error output for
assert_json_error
.
- Fixed
honeycomb
feature. (Incorrectcfg
statements.)
- Fixed missing/empty
Cargo.toml
fields.
-
Initial exports:
prelude
test_utils
utils
main
SetupResult
-
Initial feature set:
"honeycomb"
"postgres"
"panic-on-error"
Note: the following override is currently required to make libhoney-rust
use async-std
as its runtime:
[patch.crates-io.libhoney-rust]
git = "https://github.com/eaze/libhoney-rust.git"
branch = "runtime-async-std"
optional = true
default-features = false
features = ["runtime-async-std"]