View Source Changelog
1.6.3
Fixed
- Clean up Elixir 1.17 deprecation warnings (#262).
1.6.2
Changed
- Relax Poison dependency to allow 5.x.
- Support HTTPoison 2.0, dropping support for ~> 0.7.
Fixed
- Handle new PEM decode case for APNS cert keys with OpenSSL 3.0.
v1.6.1
Security
- Bump minimum Kadabra to 0.6.0. This is a critical security update for CA certificate validation.
v1.6.0
Added
JSON library made configurable. For backwards compatability, Poison is still a required dependency. Override in your
config.exs.config :pigeon, json_library: Jason
Fixed
- Handle FCM single message_id's on topic pushes.
v1.5.1
v1.5.0
- Bumped minimum Elixir version to 1.6
- Raise
Pigeon.ConfigErrorwhen booting invalid config structs. See below for validated keys and error types. APNS.JWTConfignow validates key p8 content before connecting.- Relaxed
gen_stagedependency to allow~> 1.0
Validated config keys:
ADM.Config-:client_id,:client_secretAPNS.Config-:cert,:keyAPNS.JWTConfig-:team_id,:key,:key_identifierFCM.Config-:key
Possible error values:
{:error, {:invalid, value}}{:error, {:nofile, value}}
v1.4.0
apns-push-typeheader support for iOS 13. An additional:push_typekey has been added to theAPNS.Notificationstruct.
v1.3.2
- Document workers configuration for run-time configuration of push workers.
- Modify run-time configuration of push workers so that multiple (or no) workers may be returned by the startup configuration.
v1.3.1
- Joken dependency bumped to 2.1
v1.3.0
- Support for FCM
content_available,mutable_content, andconditionkeys - Set
priorityof APNS notifications - Joken dependency bumped to 2.0.1
v1.2.4
- Fixed ADM handling of connection timeouts
v1.2.3
- Fixed APNS, FCM and ADM error response parse crashes. Error responses not
listed in the documentation are returned as
:unknown_error
v1.2.2
- Fixed APNS handling of notification
expiration - Added APNS support for
collapse_id
v1.2.1
- FCM notifications can now handle
time_to_live,collapse_key,restricted_package_nameanddry_runkeys
v1.2.0
- Support for APNS JWT configuration
- Bump
kadabradependency tov0.4.2
v1.1.6
- Relax
gen_stagedependency to~> 0.12 - Bump
kadabradependency tov0.3.7
v1.1.5
- Fix: relax
httpoisondependency to allow0.xor1.0
v1.1.4
- Fix:
:on_responsecallbacks spawned as supervised task instead of running in theWorkerprocess - Fix: ADM token refresh failure returns updated notification instead of error tuple
v1.1.3
- More robust FCM/APNS backpressure
- Bumped minimum Kadabra version to
v0.3.6
v1.1.2
- Auto-restart connections if max stream ID is reached
- FCM/APNS Workers now use GenStage to queue pending pushes
- Bumped minimum Kadabra version to
v0.3.5
v1.1.1
- Bumped minimum Kadabra version to
v0.3.4
v1.1.0
- Minimum requirements now Elixir v1.4 and OTP 19.2 (Kadabra bumped
to
v0.3.0) - Startup worker configs. Create a functions that return config
structs and specify them your
config.exswith
config :pigeon, workers: [
{YourApp.Pigeon, :apns_config},
{YourApp.Pigeon, :fcm_config},
{YourApp.Pigeon, :adm_config},
...
]APNS
APNS.Config.config/1renamed toAPNS.Config.new/1APNS.push/2tagged tuples done away with in favor of a:responsekey on the notification.- Override push server endpoint with
:urioption inAPNS.Config.new/1 :use_2197renamed to:port:uriconfig option for overriding push server endpoint:reconnectnow false by default
FCM
NotificationResponsedone away with in favor of a:responsekey onNotification- Override push server endpoint with
:uriand:portoptions inFCM.Config.new/1 :uriand:portconfig options for overriding push server endpoint
ADM
ADM.Config.config/1renamed toADM.Config.new/1ADM.push/2tagged tuples done away with in favor of a:responsekey on the notification.ADM.start_connection/1andADM.stop_connection/1added
v1.0.4
- Fix: removed connection pinging from FCM.Worker (
:ping_periodoption left in FCM config to not break API)
v1.0.3
- Fixed proper handling of large FCM push batches
v1.0.2
- Fixed FCM infinite
GOAWAY session_timed_outloop
v1.0.1
- Configurable
:ping_periodfor FCM connections
v1.0.0
- GCM migrated to FCM API (http2)
GCMmodules renamed toFCM- Set priority of FCM notifications
APNSWorkerandADMWorkerrenamed toAPNS.WorkerandADM.Worker- Disable auto-reconnect for APNS workers with
reconnect: false - Removed Chatterbox http2 client adapter
v0.13.0
- Configurable
:ping_periodfor APNS connections
v0.12.1
- Various
chatterboxclient adapter fixes
V0.12.0
- Configurable
Pigeon.Http2.Client. Currently supportskadabraandchatterbox kadabrabumped tov0.2.0
v0.11.0
- APNS workers can be started and referenced with pids and/or atom names
- Fix: Push
:nameoption renamed to:to - Fix: GCM/ADM async pushes now use
spawn/1instead ofTask.async/1
v0.10.3
- Fix: cleaned up Elixir v1.4 warnings
v0.10.2
- Fix: poison dependency version made optionally
~> 2.0 or ~> 3.0
v0.10.1
- Fix: kadabra not started
v0.10.0
- Migrated HTTP/2 client from
chatterboxtokadabra - Support for ADM (Amazon Android) push
- APNS pushes are now synchronous by default. For async pushes use the
new
on_responseoption. GCM and ADM will have it in the next major release. - Bulk APNS pushing
- Handling of multiple APNS worker connections with different configs
- Re-implemented APNS socket pings to keep connections open
:invalid_jSONcorrected to:invalid_json
v0.9.2
- Fixed GCM error response atom conversion
v0.9.1
- Fixed :eaddrinuse error when restarting Pigeon too quickly with :apns_2197 enabled
v0.9.0
- APNS topic made optional
- APNS
put_mutable_contenthelper function added - GCM can be configured on a per-push basis
- Updated to use Macro.underscore
v0.8.0
- Implemented Chatterbox as APNS HTTP2 client
- APNS server responses now caught asynchronously
- GCM support for
notificationanddatapayload keys (Pigeon.GCM.Notification.newAPI changes)
v0.7.0
- APNS cert/key configs can now either be a file path, full-text string,
or
{:your_app, "path/to/file.pem"}(which looks in the/privdirectory of your app) - Fixed APNSWorker crash on
:ssl.send/2timeout - Better error-handling for invalid APNS configs
v0.6.0
Pigeon.APNS.Notification.new/3returns%Pigeon.APNS.Notification{}struct- Configure APNS to use SSL port 2197 with
apns_2197: truein yourconfig.exs - Error feedback symbols converted from
CamelCasetosnake_case - APNS expiration values supported with
expirationkey in%Pigeon.APNS.Notification{}
v0.5.2
- Fixed bug where APNSWorker would hang up if SSL connection failed. Now retries the connection twice more before gracefully shutting down.
v0.5.1
- GCM error responses return proper chunk of regstration IDs
v0.5.0
Pigeon.GCM.Notification.new/2returns%Pigeon.GCM.Notification{}struct- Multiple registration IDs allowed in
Pigeon.GCM.push/2 - Remove
:gcm_worker