Ruby agent compatibility


The Ruby agent is compatible with the the most popular web frameworks, operating systems and web servers. Below you can find more details about specific version compatibility.

Operating systems

The Sqreen Ruby agent is supported on all operating systems, including Linux and Mac OS X.

Ruby versions

The Ruby agent is fully compatible and tested against all rubies starting from Ruby 1.9.3 up to 2.5.x.

Rails and Sinatra

The Ruby agent is fully compatible with all version of Ruby on Rails between 3 and 5 included. Sqreen provides the most complete protection to all your Rails applications.

The Sqreen Ruby agent is fully compatible with Sinatra 1.4.x.

Servers compatibility

Sqreen is tested against the following servers:

Puma may display the following message during your application startup:

"Detected 1 Thread(s) started in app boot".

Automatic User Context in Ruby

Sqreen automatically detects and protects user accounts when your application is based on Devise framework, with DatabaseAuthenticatable strategy. More information in section Ruby SDK for user monitoring.

Database compatibility (NoSQL/SQL injection protection)

Sqreen protects against SQL and NoSQL injections for the most common production databases:

  • MySQL
  • PostgreSQL
  • SQLite
  • MongoDB

Other database?

Please, contact us if you are using a different database. We will adjust our roadmap!

Templating engine compatibility (cross-site scripting protection)

The protection against cross-site scripting attacks (XSS) is available for the ERB, Haml and Slim templating engine.

Other templating engine?

Please, contact us if you are using a different templating engine. We will adjust our roadmap!

Using with Alpine Linux

Sqreen relies on libv8 for running plugins. Since Alpine Linux do not rely on libc, the libv8 library need to be compiled specifically for Alpine Linux.

Sqreen provides a binary gem for Alpine Linux. The gem can be downloaded from here.

In a Dockerfile, the following will install libv8:

ADD https://download.sqreen.io/ruby/alpine/libv8-3.16.14.18-x86_64-linux.gem /tmp/
RUN gem install /tmp/libv8-3.16.14.18-x86_64-linux.gem
RUN gem install therubyracer

In a non Docker environment, the gem can be installed in a similar way:

$ curl -LO https://download.sqreen.io/ruby/alpine/libv8-3.16.14.18-x86_64-linux.gem

The repository hosting our scripts to build this gem is located here.

This Dockerfile is a fully integrated example of TheRubyRacer running in Alpine:

FROM ruby:2.4-alpine

RUN apk add --update gcc g++ musl-dev make git

ADD https://download.sqreen.io/ruby/alpine/libv8-3.16.14.18-x86_64-linux.gem /tmp/
RUN gem install /tmp/libv8-3.16.14.18-x86_64-linux.gem

RUN gem install therubyracer
RUN ruby -e'require "therubyracer"; ctx = V8::Context.new; puts ctx.eval("7 * 6")'