Skip to content
jrochkind edited this page Mar 1, 2012 · 6 revisions

At present Umlaut only has one admin function, and it's kind of experimental at that: Report on Service errors.

It's been an idea to also add some simple statistics, may happen in the future.

Activating admin functions

The admin functions are not accessible by default. This is in part because of unclear issues with protecting admin functions from unauthorized users. We have a bit of protection, but it's not entirely thought through and you need to turn it on manually.

To turn on admin functions, edit your local ./config/routes.rb file, and edit the Umlaut::Routes line to enable routing to admin functions:

  Umlaut::Routes.new(self, :admin => true).draw

By default, admin functions will require https access in production environment (but not others), but not require any login. You can change https-require and add a single login/password (via http basic auth) for admin functions in your umlaut config in local ./app/controllers/umlaut_controller.rb:

umlaut_config.configure do
  #....

  admin do
    force_ssl false # no ssl even in production
    auth do
      username 'admin'
      password 'some_password'
    end
  end

  # ....
end

As an alternative to Umlaut configured admin username/password, you could protect at the apache level using any of apache's access control mechanisms, perhaps a local institutional single-sign on limited to certain accounts.

Service Error Reports

Once you've enabled admin functions (see above), an interactive report is available of recent failures in executing service plugins. At http://yourumlaut/admin/service_errors

Even if Umlaut code is all functioning properly, a third party API being down or malfunctioning may cause a service error, so it be useful to check this periodically to see how things are doing. A third party API changing their interface or auth requirements in a way no longer compatible with Umlaut code has also been known to happen. And, of course, actual bugs in Umlaut service code are possible too.

Functions are available for filtering service failure incidents by service_id and text query.

Stack backtrace to where an exception was raised are sometimes included in error reports here, which can be very useful.