Packages
plug
1.0.0
1.20.3
1.20.2
1.20.1
retired
1.20.0
retired
1.19.5
1.19.4
1.19.3
1.19.2
1.19.1
1.19.0
1.18.5
1.18.4
1.18.3
1.18.2
1.18.1
1.18.0
1.17.4
1.17.3
1.17.2
1.17.1
1.17.0
1.16.6
1.16.5
1.16.4
1.16.3
1.16.2
1.16.1
1.16.0
1.15.6
1.15.5
1.15.4
1.15.3
1.15.2
1.15.1
1.15.0
1.14.2
1.14.1
1.14.0
1.13.6
1.13.5
1.13.4
1.13.3
1.13.2
1.13.1
retired
1.13.0
retired
1.12.1
1.12.0
1.11.1
1.11.0
1.10.4
1.10.3
1.10.2
1.10.1
1.10.0
1.9.0
1.8.3
1.8.2
1.8.1
1.8.0
1.7.2
1.7.1
1.7.0
1.6.4
1.6.3
1.6.2
1.6.1
1.6.0
1.5.1
1.5.0
1.5.0-rc.2
1.5.0-rc.1
1.5.0-rc.0
1.4.5
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.4.0-rc.0
1.3.6
1.3.5
1.3.4
1.3.3
1.3.2
1.3.1
1.3.0
1.2.6
1.2.5
1.2.4
1.2.3
1.2.2
1.2.1
1.2.0
1.2.0-rc.0
1.1.9
1.1.8
1.1.7
1.1.6
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
0.14.0
0.13.1
0.13.0
0.12.2
0.12.1
0.12.0
0.11.3
0.11.2
0.11.1
0.11.0
0.10.0
0.9.0
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.0
0.6.0
0.5.3
0.5.2
0.5.1
0.5.0
0.4.4
0.4.3
0.4.2
0.4.1
Compose web applications with functions
Security advisory:
This version has known vulnerabilities.
View advisories
Current section
Files
Jump to
Current section
Files
CHANGELOG.md
## Changelog
## v1.0.0
* Enhancements
* Allow custom headers in `Plug.Static`
* Bug fix
* No longer automatically assume "priv" for cert and key files for Cowboy SSL
* Raise if response has been sent more than once in test connection
* Raise when body is nil on `Plug.Conn.resp/3`
* Show more info and escape messages in `Plug.Debugger`
## v0.14.0
* Enhancements
* Support `:rewrite_on` on `Plug.SSL`
* Add `Plug.Conn.merge_resp_headers/2`
* Bug fix
* Ensure message encryptor and verifier do not error on bad data
## v0.13.1
* Enhancements
* Add `conn.request_path`
* Raise if `put_session/3` is invoked when response is sent
* Bug fixes
* Fix empty params being encoded into query string as '&'
* Deprecations
* `Plug.Conn.full_path/2` is deprecated in favor of `conn.request_path`
* `Plug.Test.put_req_header/3` and `Plug.Test.delete_req_header/3` is deprecated in favor of similarly named functions in `Plug.Conn`
## v0.13.0
* Enhancements
* Raise if a header in upcase is given
* Store timestamps in sessions ETS table and document each entry format
* Allow private options when specifying routes in `Plug.Router`
* Allow the session to be cleared and ignored when an invalid CSRF token is given
* Allow log level to be configured in `Plug.Logger`
* Generate masked CSRF tokens to avoid BREACH attacks
* Backwards incompatible changes
* `Plug.Logger` no longer sets the request id. Use `Plug.RequestId` instead
## v0.12.2
* Enhancements
* Add `Plug.HTML`
* Bug fixes
* Do not crash on poorly encoded cookies
* Decode parameters before matching on the router
## v0.12.1
* Enhancements
* Add `Plug.SSL` with redirection from HTTP and HSTS support
* Remove the need for `:encrypt` option from `Plug.Session.COOKIE`. The need for encryption can be fully specified by passing `:encrypted_salt` option. This improvement is backwards compatible.
* Bug fixes
* Ensure we don't parse body params if they were already parsed
## v0.12.0
* Enhancements
* Add `query_params` and `body_params` to keep query and body parameters apart from `params`
* Allow custom encoders when encoding query parameters
* Assert valid utf-8 on url encoded and multipart bodies
* Bug fixes
* Use only body parameters when detecting method override
* Add Vary header when serving gzipped content in Plug.Static
* Deprecations
* `fetch_params/2` is deprecated in favor of `fetch_query_params/2`
## v0.11.3
* Bug fixes
* Ensure test adapter reuses the given connection
* Deprecations
* The `:headers` option in `Plug.Test.conn/4` is deprecated in favor of `put_req_header/3`
## v0.11.2
* Enhancements
* Add `:log_on_halt` option to `Plug.Builder` and `Plug.Router`
* Use raw files and delayed writes on upload
* Bug fixes
* Do not read the whole request body at once
* Improve performance of url encoded params
* Deprecations
* `Plug.Builder.compile/1` and `Plug.Builder.compile/2` are deprecated in favor of explicit `Plug.Builder.compile/3`
## v0.11.1
* Enhancements
* Allow Plug mimes to be configured via application environment
* Extend JSON parser to be compatible with all json compatible content types. This includes types with suffix `+json`
* Add `Plug.Conn.clear_session/1`
* Bug fixes
* Do not require cowboy at compile time
* Also parse request bodies on DELETE requests
## v0.11.0
* Enhancements
* Add `Plug.Conn.async_assign/3` and `Plug.Conn.await_assign/3` to start and await for assigns asynchronously, mimic'ing `Task.async/1` and `Task.await/2` behaviour
* Add `Plug.Conn.WrapperError` to propagate an error with the connection for better debugging by either `Plug.Debugger` or `Plug.ErrorHandler`
* Add `Plug.Conn.update_resp_header/4` to update a response header or set its initial value if not present
* Bug fixes
* Skip parsing of files when no filename is sent
* Fix how script_name are accumulated with multiple calls to `Plug.Router.forward/2`
* Backwards incompatible changes
* `Plug.CSRFProtection` now uses a session to store tokens. Tokens are now generated on demand and can be accessed via `Plug.CSRFProtection.get_csrf_token/0`
## v0.10.0
* Enhancements
* Add `:only` option to `Plug.Static` to avoid all requests triggering file system queries
* Add ETag management to `Plug.Static` when requests to not contain a versioned query string
* Enforce atom or string keys in `Plug.Conn.put_session/3` and friends and normalize keys to strings
* Bug fixes
* Add UTF-8 tag to debugger templates
* Backwards incompatible changes
* `Plug.CSRFProtection` now uses a cookie instead of session and expects a `"_csrf_token"` parameter instead of `"csrf_token"`
## v0.9.0
* Enhancements
* Add `Plug.Conn.full_path/1`
* Add `Plug.CSRFProtection` that adds cross-forgery protection
* Add `Plug.ErrorHandler` that allows an error page to be sent on crashes (instead of a blank one)
* Support host option in `Plug.Router`
* Backwards incompatible changes
* Add `Plug.Router.Utils.build_match/1` was renamed to `build_path_match/1`
## v0.8.4
* Bug fixes
* Clean up `{:plug_conn, :sent}` messages from listener inbox and ensure connection works accross processes
* Deprecations
* Deprecate `recycle/2` in favor of `recycle_cookies` in Plug.Test
## v0.8.3
* Enhancements
* Use PKCS7 padding in MessageEncryptor (the same as OpenSSL)
* Add support for custom serializers in cookie session store
* Allow customization of key generation in cookie session store
* Automatically import `Plug.Conn` in Plug builder
* Render errors from Plug when using Ranch/Cowboy nicely
* Provide `Plug.Crypto.secure_compare/2` for comparing binaries
* Add `Plug.Debugger` for helpful pages whenever there is a failure during a request
* Deprecations
* Deprecate `:accept` in favor of `:pass` in Plug.Parsers
## v0.8.2
* Enhancements
* Add `Plug.Conn.Utils.media_type/1` to provide media type parsing with wildcard support
* Do not print adapter data by default when inspecting the connection
* Allow plug_status to simplify the definition of plug aware exceptions
* Allow cache headers in `Plug.Static` to be turned off
* Bug fix
* Support dots on header parameter parsing
## v0.8.1
* Enhancements
* Add a `Plug.Parsers.JSON` that expects a JSON decoder as argument
* Bug fix
* Properly populate `params` field for test connections
* Fix `Plug.Logger` not reporting the proper path
## v0.8.0
* Enhancements
* Add `fetch_session/2`, `fetch_params/2` and `fetch_cookies/2` so they can be pluggable
* Raise an error message on invalid router indentifiers
* Add `put_status/2` and support atom status codes
* Add `secret_key_base` field to the connection
* Backwards incompatible changes
* Add `encryption_salt` and `signing_salt` to the CookieStore and derive actual keys from `secret_key_base`
## v0.7.0
* Enhancements
* Support Elixir 1.0.0-rc1
* Support haltable pipelines with `Plug.Conn.halt/2`
* Ensure both Plug.Builder and Plug.Router's `call/2` are overridable
* Bug fix
* Properly report times in Logger
* Backwards incompatible changes
* Remove support for Plug wrappers
## v0.6.0
* Enhancements
* Add `Plug.Logger`
* Add `conn.peer` and `conn.remote_ip`
* Add `Plug.Conn.sendfile/5`
* Allow `call/2` from `Plug.Builder` to be overridable
## v0.5.3
* Enhancements
* Update to Cowboy v1.0.0
* Update mime types list
* Update to Elixir v0.15.0
## v0.5.2
* Enhancements
* Update to Elixir v0.14.3
* Cowboy adapter now returns `{:error,:eaddrinuse}` when port is already in use
* Add `Plug.Test.recycle/2` that copies relevant data in between connections for future requests
## v0.5.1
* Enhancements
* Add ability to configure when `Plug.Parsers` raises `UnsupportedMediaTypeError`
* Add `Plug.Conn.Query.encode/1`
* Add `CookieStore` for session
* Bug fixes
* Ensure plug parses content-type with CRLF as LWS
## v0.5.0
* Enhancements
* Update to Elixir v0.14.0
* Update Cowboy adapter to v0.10.0
* Add `Plug.Conn.read_body/2`
* Backwards incompatible changes
* `Plug.Parsers` now expect `:length` instead of `:limit` and also accept `:read_length` and `:read_timeout`
## v0.4.4
* Enhancements
* Update to Elixir v0.13.3
## v0.4.3
* Enhancements
* Update to Elixir v0.13.2
## v0.4.2
* Enhancements
* Update to Elixir v0.13.1
## v0.4.1
* Enhancements
* Remove `:mime` dependency in favor of `Plug.MIME`
* Improve errors when Cowboy is not available
* First hex package release
## v0.4.0
* Enhancements
* Support `before_send/1` callbacks
* Add `Plug.Static`
* Allow iodata as the body
* Do not allow response headers to be set if the response was already sent
* Add `Plug.Conn.private` to be used as storage by libraries/frameworks
* Add `get_req_header` and `get_resp_header` for fetching request and response headers
* Backwards incompatible changes
* `Plug.Connection` was removed in favor of `Plug.Conn`
* `Plug.Conn` is now a struct
* assigns, cookies, params and sessions have been converted to maps
## v0.3.0
* Definition of the Plug specification