SolidStackWeb

CI Gem Version Ruby codecov

A mountable Rails engine that provides a unified web dashboard for the full Solid StackSolid Queue, Solid Cache, and Solid Cable — in a single interface with no asset pipeline dependency and no JavaScript runtime requirement.

Features

  • Overview dashboard with live counts across all three Solid Stack components
  • Solid Queue — browse jobs by status (ready, scheduled, claimed, blocked), manage failed jobs (retry / discard), pause/resume queues, and inspect worker processes
  • Solid Cache — entry count and total byte size at a glance
  • Solid Cable — active message count and distinct channel count
  • Turbo Stream job discard — removes the row inline without a full page reload
  • Authentication hook — plug in your own auth logic (Devise, Basic Auth, custom) via a one-line initializer
  • Zero asset pipeline coupling — CSS is injected inline; safe to mount in any host app

Installation

Add the gem to your application's Gemfile:

gem "solid_stack_web"

Run:

bundle install

Mount the engine in config/routes.rb:

mount SolidStackWeb::Engine, at: "/solid_stack"

The dashboard will be available at /solid_stack (or whatever path you choose).

Configuration

Create an initializer at config/initializers/solid_stack_web.rb:

SolidStackWeb.configure do |config|
  # Number of items per paginated page (default: 25)
  config.page_size = 50

  # Authentication — block runs in controller context.
  # Return a truthy value to allow access; falsy falls back to HTTP Basic.
  config.authenticate do
    current_user&.admin?
  end
end

Authentication

The authenticate block is evaluated in the context of each request's controller instance, so any helper method available to controllers (e.g. current_user from Devise) works directly. If the block returns false or nil, the engine falls back to HTTP Basic authentication. If no authenticate block is configured, the dashboard is open.

Requirements

Contributing

  1. Fork the repository
  2. Create a feature branch (git checkout -b feat/my-feature)
  3. Run the test suite: bundle exec rake
  4. Open a pull request

Bug reports and feature requests are welcome on GitHub Issues.

License

The gem is available as open source under the terms of the MIT License.