- Remove support for Elixir 1.13. Minimum is Elixir 1.14
- Support dynamic log level in
Uinta.Plug
.- Option
:log
now accepts{module, function, args}
tuple called with prependedconn
to determine log level.
- Option
- Support not double encoding the payload. In order to do that, a new plugs option
format
was added. We are deprecating thejson
option instead though it is backward compatible for a little while
:format
- Output format, either :json, :string, or :map. Default is:string
To migrate easily, just find where you initialize your plug, and change the :json to :format
- handle white space in front of a mutation/query
- Upgrade dependencies
- fix bad regex to capture better operation name
- Upgrade dependencies
- Clean up some docs
- some internal code cleaning
- ** Breaking ** Support Elixir 1.11 and above
- Add support for formatting metadata list values
- Log out error on rescue when we are unable to format
- Removed remapping for status as done in Datadog directly
- Adds support for mapped fields in DataDog. To enable this, use
include_datadog_fields: true
in your plug initialization
Uinta.Formatter.Datadog
- Drop in replacement forUinta.Formatter
that adds Datadog specific metadata to help correlate traces and logs
- Doesn't crash when "query" is not a string
- Client ip is now properly serialize as a string
- adds more fields to the log:
- referer
- user_agent
- x_forwarded_for
- x_forwarded_proto
- x_forwarded_port
- via
operationName
for GQL requests
path
now always path and not sometimes operationName
- configurable sampling of successful requests. Use the :success_log_sampling_ratio configuration in init and specify a ratio of the sample to log. Ratio can support a precision up to 4 digits
- update dependencies
- ignore request path options to
Uinta.Plug
, to filter out request unwanted unless HTTP status returned is not a 200-level status - Adds a CHANGELOG
- Adds a duration_ms as a number
- Upgraded the package dependencies
- ignore request path options to
Uinta.Plug
, to filter out request unwanted unless HTTP status returned is not a 200-level status
- properly handle GraphQL queries with no commas
- handle array arguments properly in the regex
- better handle queries with no operationName