- Fixed an issue with
Surgex.Parser.flat_parse/2
returning values in an unpredictable order when parsers were passed as a map. Now, only keyword lists are accepted as parsers to maintain key order.
- Using
Logger.warning
instead of deprecatedLogger.warn
-
Fix optional dependency on
Jabbax
andPlug
by:- defining
Surgex.Parser
only ifJabbax
is available - defining
Surgex.Sentry
only ifPlug
is available
- defining
- Discard unexpected parameters instead of returning 400 Bad Request
4.12.0 - 2022-09-05
- New parser (
Surgex.Parser.DefaultParser
) returning default values
- Added ability to return map with
Surgex.Parser.parse_map/2
function
- Extended compatibility with Jabbax to 1.0
- New
:regex
option forSurgex.Parser.StringParser
, allowing checking input agains given pattern - New UUID parser (
Surgex.Parser.UuidParser
) - Add support for :min, :max and :trim option for
Surgex.Parser.EmailParser
- New
Surgex.DateTime
module withdate_and_offset_to_datetime/3
helper for creating UTC or time-zone date time
- The
Surgex.Parser.RequiredParser
accepts an empty string as valid input
- Parsers can now process any value without throwing exception on unknown value type
- Updated
Surgex.Parser.ResourceArrayParser
to support invalid parameters
- Extended parsers to match empty string values as nil
- Extended parsing of ResourceID ("" -> required)
- Bump minor version
- Extended parsing of boolean ("true" -> true, "false" -> false) and integers ("" -> nil) values
- Added support for translating errors in nested changeset to JSON API responses
- Removed support for AppSignal
Surgex.RepoHelpers
sets ecto application_name based on APP_NAME env var
- Simplified email regex to fix catastrophic backtracing error when providing longer addresses
- Added ssl in
Surgex.RepoHelpers
- Fixed typespec error in
Surgex.Parser.BooleanParser
- Added
dialyzer --halt-exit-status
tomix check
- Added typespecs in
Surgex.Parser
- Deprecated
Surgex.Guide
,Surgex.RepoHelpers
andSurgex.Sentry
- Improved
Surgex.DataPipe.ForeignDataWrapper
to alter pg server if it already exists
- Fixed error in
Surgex.Appsignal.EctoLogger
for when event is missing stage times
- Fixed compilation of
Surgex.Appsignal.EctoLogger
- Added
:all
value for:query_stages
option inSurgex.Appsignal.EctoLogger.handle_event/4
- Added
Surgex.Appsignal.EctoLogger
- Added
Surgex.RepoHelpers.set_pool_size/2
and included it inset_opts/2
- Extended
Surgex.Parser.IdListParser
with support for list type - Removed
Surgex.Config
- Removed
Surgex.DeviseSession
- Removed
Surgex.PhoneNumber
- Removed
Surgex.RPC
- Removed
Surgex.Scout
- Updated some deps
- Added
Surgex.RepoHelpers
- Added
Surgex.DataPipe.PostgresSystemUtils
- Fixed
Surgex.DataPipe
to support PostgreSQL 10 - Reformatted code with Elixir Formatter
- Deprecated
Surgex.{Config, DeviseSession, PhoneNumber, RPC, Scout}
modules
- Extended
Surgex.Parser.StringParser
withtrim
,min
andmax
options - Extended
Surgex.Parser.ResourceArrayParser
withmin
andmax
options - Extended
Surgex.Parser.IncludeParser
with support for multiple includes
- Extended
Surgex.DataPipe.RepoProxy
with registry and follower sync
- Fixed LSN check in
Surgex.DataPipe.FollowerSync
- Refine error handling in
Surgex.DataPipe.FollowerSync
- Added
Surgex.DataPipe.RepoProxy
- Added
Surgex.Parser.ListParser
- Extended
Surgex.DataPipe.TableSync
withdelete_scope
option - Fixed
Surgex.DataPipe.TableSync
to properly use Ecto's query params
- Extended
Surgex.Parser.FloatParser
with support for integers as input
- Extended
Surgex.Parser.FloatParser
with support for floats as input - Extended
Surgex.Parser.BooleanParser
with support for booleans as input
- Extended
Surgex.Parser.FloatParser
withmin
andmax
options
- Added
Surgex.Parser.ResourceParser
- Fixed
Surgex.RPC.Client
to support no services in the client - Refactored
Surgex.RPC
for proper payload - transport separation
- Added
Surgex.Parser.SlugParser
- Added
Surgex.Parser.SlugOrIdParser
- Added support for configuring
Surgex.RPC.HTTPAdapter
via Mix config, powered bySurgex.Config
- Added support for passing service name atom to
Surgex.RPC.Client.proto/1
- Added support for passing arbitrary opts to
Protobuf
viaSurgex.RPC.Client.service/1
- Added
Surgex.RPC
- Added
Surgex.Guide.CodeStyle.typespec_alias_usage/0
rule
- Added
Surgex.Config.Patch
- Added
Surgex.Scout
to support setting Scout Agent Key with{:system, "SCOUT_API_KEY"}
- Added
Surgex.Guide.SoftwareDesign.return_ok_error_usage/0
rule
- Fixed
Surgex.DeviseSession
to supportPlug.Conn
with{:system, "SECRET_KEY_BASE"}
- Added
Surgex.DatabaseCleaner
- Added
Surgex.Guide.CodeStyle.pipe_chain_alignment/0
- Fixed
Surgex.Parser
to return the same error reason multiple times
- Added support for raw SQL source in
Surgex.DataPipe.TableSync
- Fixed nil scope bug in
Surgex.Config.get/2
- Fixed per-repo config parse bug in
Surgex.DataPipe.FollowerSync
- Added support for per-repo config in
Surgex.DataPipe.FollowerSync
- Replaced
Surgex.Config.Session
withSurgex.DeviseSession
- Added
Surgex.DataPipe
- Added
Surgex.Refactor
- Added
Surgex.Config.Session
- Support integer input in
Surgex.Parser.IntegerParser
- Return
invalid
instead ofinvalid-cast
inSurgex.Changeset
- Add
Surgex.Guide.CodeStyle.test_happy_case_placement/0
rule
- Keep input nil keys in
Surgex.Parser
- Fix bug in Sentry docs
- Added
Surgex.Guide.SoftwareDesign.error_handling/0
rule - Fixed some other rules
- Added
Surgex.PhoneNumber
- Extended
Surgex.Config
to support env var lists - Changed
Surgex.Config
to take opts via keyword list - Added
Surgex.Parser
support for nil input - Extended
Surgex.Parser.IntegerParser
with min and max opts - Changed
Surgex.Sentry
to run as an OTP app - Extended
Surgex.Sentry
to take release and environment from Mix - Completed
Surgex.Guide