Logo of AppSignal

Menu

Elixir integration 1.6:
The GDPR release!

Jeff Kreeftmeijer on

We just released AppSignal for Elixir package version 1.6.0 1.6.3 which allows filtering of more data and adds a “revision” config option for APP_REVISION!

Shipped today with the Elixir package is also a Ruby gem release containing many of the same enhancements.

Request headers list

With this release it’s possible to specify which HTTP request headers AppSignal stores on transactions and sends to the AppSignal servers. This feature was added in light of the new General Data Protection Regulation (GDPR).

Which request headers to process is determined through the request_headers whitelist option. If unset, it falls back to a collection of headers that don’t contain personal data. This means headers such as REMOTE_ADDR, REFERER and a few more will not be sent to AppSignal. When upgrading from Ruby gem 2.5 and earlier, you’ll notice that newly added samples won’t contain these headers containing potential personal data unless you specify otherwise.

Here’s an example with our Elixir package 1.6 defaults:

1
2
3
4
5
6
7
# config/appsignal.exs
config :appsignal, :config,
  request_headers: ~w(
    accept accept-charset accept-encoding accept-language cache-control
    connection content-length path-info range request-method
    request-uri server-name server-port server-protocol
  )

Or when using environment variables for configuration:

1
export APPSIGNAL_REQUEST_HEADERS=HTTP_ACCEPT,HTTP_ACCEPT_CHARSET,HTTP_ACCEPT_ENCODING,HTTP_ACCEPT_LANGUAGE,HTTP_CACHE_CONTROL,HTTP_CONNECTION,CONTENT_LENGTH,PATH_INFO,HTTP_RANGE,REQUEST_METHOD,REQUEST_URI,SERVER_NAME,SERVER_PORT,SERVER_PROTOCOL

Filter session data

It was always possible to filter parameter values, but not session data. Thanks to @dwilkins this is now possible!

Using the filter_session_data config option it’s possible to specify which session data keys should be filtered out and replaced with [FILTERED] instead. Use this option to make sure you’re not sending any sensitive or personal data to our servers.

1
2
3
# config/appsignal.exs
config :appsignal, :config,
  filter_session_data: ["name", "email", "api_token", "token"]

Or when using environment variables for configuration:

1
export APPSIGNAL_FILTER_SESSION_DATA=name,email,api_token,token

Revision config option

We’ve supported the APP_REVISION environment variable for a while to notify AppSignal of new deploys. This variable sets the app revision at runtime. The main advantage is that it’s possible to report multiple revisions at the same time from different hosts, such as during a deploy or when another host doesn’t have to be deployed.

In this version we’ve added support for a configuration option for it in appsignal.exs. This means the APP_REVISION environment variable is no longer a requirement to use this method, but instead all your configuration can exist in the same config file.

For more information about deploy markers and the revision config option, see our documentation page about deploy markers.

Other improvements

Please see the changelog for more details about these improvements, deprecations and other changes. And as always: get in touch if you encounter problems after upgrading. We’re happy to help!

Image credit: MPD01605 CC BY-SA 2.0 via WikiMedia Commons

10 latest articles

Go back

Subscribe to

Ruby Magic

Magicians never share their secrets. But we do. Sign up for our Ruby Magic email series and receive deep insights about garbage collection, memory allocation, concurrency and much more.

We'd like to set cookies, read why.