- Added compile-time deprecation warnings to
Surgex.Sentryfunctionsinit/0- use Elixir 1.9+ runtime configuration insteadscrub_params/1- use Sentry's built-in scrubbing or implement your own
- Added compile-time deprecation warnings to all
Surgex.RepoHelpersfunctions- Use Elixir 1.9+ runtime configuration (
config/runtime.exs) instead - See module docs for migration guide
- Use Elixir 1.9+ runtime configuration (
- Removed
--warnings-as-errorsfrom CI to allow deprecation warnings to surface in consumer apps
- Removed
Surgex.DataPipe.RepoProxymodule (no external usage found) - Removed
Surgex.DataPipe.ForeignDataWrappermodule (no external usage found) - Removed
Surgex.DataPipe.TableSyncmodule (forked into app-shedul-umbrella, original unused)
- Removed
Surgex.Guidemodule and submodules (deprecated, use external style guides) - Removed
Surgex.DatabaseCleanermodule (no external usage found) - Removed
Surgex.Refactormodule and mix task (no external usage found) - Removed escript configuration (was only used for refactor command)
- Fixed
Surgex.Parser.DecimalParsercompatibility with Elixir 1.18's gradual type system - Fixed deprecation warning for map.field notation in
Surgex.DataPipe.ForeignDataWrapper
- Fixed datetime precision in
Surgex.DateTime.date_and_offset_to_datetime/3to preserve second precision afterTimex.shift/2calls (which upgrades to microsecond precision) - Updated CI workflows for Elixir 1.15-1.18 with OTP 26-27
- Fixed an issue with
Surgex.Parser.flat_parse/2returning 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.warninginstead of deprecatedLogger.warn
-
Fix optional dependency on
JabbaxandPlugby:- defining
Surgex.Parseronly ifJabbaxis available - defining
Surgex.Sentryonly ifPlugis 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/2function
- Extended compatibility with Jabbax to 1.0
- New
:regexoption 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.DateTimemodule withdate_and_offset_to_datetime/3helper for creating UTC or time-zone date time
- The
Surgex.Parser.RequiredParseraccepts an empty string as valid input
- Parsers can now process any value without throwing exception on unknown value type
- Updated
Surgex.Parser.ResourceArrayParserto 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.RepoHelperssets 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-statustomix check
- Added typespecs in
Surgex.Parser - Deprecated
Surgex.Guide,Surgex.RepoHelpersandSurgex.Sentry
- Improved
Surgex.DataPipe.ForeignDataWrapperto alter pg server if it already exists
- Fixed error in
Surgex.Appsignal.EctoLoggerfor when event is missing stage times
- Fixed compilation of
Surgex.Appsignal.EctoLogger - Added
:allvalue for:query_stagesoption inSurgex.Appsignal.EctoLogger.handle_event/4
- Added
Surgex.Appsignal.EctoLogger
- Added
Surgex.RepoHelpers.set_pool_size/2and included it inset_opts/2
- Extended
Surgex.Parser.IdListParserwith 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.DataPipeto support PostgreSQL 10 - Reformatted code with Elixir Formatter
- Deprecated
Surgex.{Config, DeviseSession, PhoneNumber, RPC, Scout}modules
- Extended
Surgex.Parser.StringParserwithtrim,minandmaxoptions - Extended
Surgex.Parser.ResourceArrayParserwithminandmaxoptions - Extended
Surgex.Parser.IncludeParserwith support for multiple includes
- Extended
Surgex.DataPipe.RepoProxywith 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.TableSyncwithdelete_scopeoption - Fixed
Surgex.DataPipe.TableSyncto properly use Ecto's query params
- Extended
Surgex.Parser.FloatParserwith support for integers as input
- Extended
Surgex.Parser.FloatParserwith support for floats as input - Extended
Surgex.Parser.BooleanParserwith support for booleans as input
- Extended
Surgex.Parser.FloatParserwithminandmaxoptions
- Added
Surgex.Parser.ResourceParser
- Fixed
Surgex.RPC.Clientto support no services in the client - Refactored
Surgex.RPCfor proper payload - transport separation
- Added
Surgex.Parser.SlugParser - Added
Surgex.Parser.SlugOrIdParser
- Added support for configuring
Surgex.RPC.HTTPAdaptervia 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
ProtobufviaSurgex.RPC.Client.service/1
- Added
Surgex.RPC
- Added
Surgex.Guide.CodeStyle.typespec_alias_usage/0rule
- Added
Surgex.Config.Patch
- Added
Surgex.Scoutto support setting Scout Agent Key with{:system, "SCOUT_API_KEY"}
- Added
Surgex.Guide.SoftwareDesign.return_ok_error_usage/0rule
- Fixed
Surgex.DeviseSessionto supportPlug.Connwith{:system, "SECRET_KEY_BASE"}
- Added
Surgex.DatabaseCleaner
- Added
Surgex.Guide.CodeStyle.pipe_chain_alignment/0
- Fixed
Surgex.Parserto 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.SessionwithSurgex.DeviseSession - Added
Surgex.DataPipe - Added
Surgex.Refactor
- Added
Surgex.Config.Session
- Support integer input in
Surgex.Parser.IntegerParser
- Return
invalidinstead ofinvalid-castinSurgex.Changeset
- Add
Surgex.Guide.CodeStyle.test_happy_case_placement/0rule
- Keep input nil keys in
Surgex.Parser
- Fix bug in Sentry docs
- Added
Surgex.Guide.SoftwareDesign.error_handling/0rule - Fixed some other rules
- Added
Surgex.PhoneNumber
- Extended
Surgex.Configto support env var lists - Changed
Surgex.Configto take opts via keyword list - Added
Surgex.Parsersupport for nil input - Extended
Surgex.Parser.IntegerParserwith min and max opts - Changed
Surgex.Sentryto run as an OTP app - Extended
Surgex.Sentryto take release and environment from Mix - Completed
Surgex.Guide