View Source Unleash.Propagation.Plugs (Unleash v2.0.0-git-4b61)
Module that defines plugs to automatically integrate with the Unleash.Propagation mechanism.
All you have to do is plug them in your scope, pipeline, router or endpoint:
defmodule MyAppRouter do
use Plug.Router
import Unleash.Propagation.Plugs
plug :extract_unleash_context
plug :extract_unleash_overrides
plug :track_impressions
# Rest of your plugs...
endYou then can simply use Unleash as usual in your controllers,
and all propagation features (client-supplied context, client-supplied overrides and
returning feature toggles impressions) will automagically work!
See Unleash.Propagation for more details.
Summary
Functions
A generic Plug to extract an header value, transform it, and store it.
A Plug that extracts the unleash context from a request header and stores it in the
process dictionary under :unleash_context.
A Plug that extracts unleash overrides from a request header and stores them in the
process dictionary under :unleash_overrides.
A Plug that will make your controller track all of the feature toggles invoked while handling the request (including spawned subprocesses) and return the (deduplicated) impressions in a response header.
Functions
@spec extract_header_and_store( Plug.Conn.t(), keyword() ) :: Plug.Conn.t()
A generic Plug to extract an header value, transform it, and store it.
It's unlikely you'll need to use this directly, and you should simply plug
extract_unleash_context/2 and extract_unleash_overrides/2 in your pipelines instead,
but if you know what you're doing and you need custom behaviour, feel free to use this.
@spec extract_unleash_context( Plug.Conn.t(), keyword() ) :: Plug.Conn.t()
A Plug that extracts the unleash context from a request header and stores it in the
process dictionary under :unleash_context.
By default it uses x-unleash-context header, but you can specify the header_name option
to use a different one:
plug :extract_unleash_context, header_name: "my-custom-header"
@spec extract_unleash_overrides( Plug.Conn.t(), keyword() ) :: Plug.Conn.t()
A Plug that extracts unleash overrides from a request header and stores them in the
process dictionary under :unleash_overrides.
By default it uses x-unleash-overrides header, but you can specify the header_name option
to use a different one:
plug :extract_unleash_overrides, header_name: "my-custom-header"
@spec track_impressions( Plug.Conn.t(), keyword() ) :: Plug.Conn.t()
A Plug that will make your controller track all of the feature toggles invoked while handling the request (including spawned subprocesses) and return the (deduplicated) impressions in a response header.
By default it uses x-unleash-impressions header, but you can specify the header_name option
to use a different one:
plug :track_impressions, header_name: "my-custom-header"