← All documentation

The control panel

Every API key and setting SparrowKit needs is entered in one place: a panel inside your own application, at http://localhost:3000/sparrowkit.

There is no settings file to hand-edit and nothing to paste into a dashboard somewhere else.


It only runs on your machine

This is the part worth understanding before anything else.

The panel is sparrow_ui, and it belongs in the development group of your Gemfile:

group :development do
  gem "sparrow_ui"
end

Never put it outside that group. It configures your authentication and holds your payment keys.

It also defends itself rather than trusting you to remember. The panel refuses anything that is not a request from your own machine, and it refuses it before routing runs — so it cannot be reached even if it accidentally ships.

That belt-and-braces arrangement is deliberate: the Gemfile group is the rule, and the refusal is what happens when the rule is broken.


What it writes

Everything the panel saves goes into your application’s Rails encrypted credentials, one top-level key per module — sparrow_auth:, sparrow_mail:, and the payment processor’s own key where Pay expects to find it.

That means your settings are encrypted, committed with your code, and never sitting in a .env file waiting to be pasted into a chat window.

The panel is the easier way to write them, not the only way:

bin/rails credentials:edit

reaches exactly the same place. Nothing in the panel is a setting you could not have typed yourself.


What is on it

Page What you set
Home Your product’s name and address, which several other settings derive from
Signing in The passkey domain, which ways in are open, Google and Apple, where auth mail comes from
Mail Your email provider and its keys, the default sender, and a test send
Payments Your payment company and its keys

Each page explains the settings on it, including what a wrong answer costs. The documentation here covers what a panel cannot say in a hint: why a setting is shaped the way it is.


What it is not

It is not an admin area for your product. There is no user list, no customer search, no dashboard, and nothing your staff would ever open. It configures SparrowKit, and that is all it does.

It does not phone home. The panel makes no outbound request of any kind — there is no version check, no telemetry, and nothing that reports what you configured. If this website disappeared tomorrow, your copy would carry on working.

It does not run in production, so nothing about it is a production dependency.


Installing without it

sparrowkit:install comes from sparrow_ui. If you are not taking the panel, each module installs itself instead:

bin/rails sparrow_mail:install
bin/rails sparrow_auth:install
bin/rails sparrow_pay:install

Each does the same work for its own module. You then set that module’s values in credentials by hand, since the panel that would have written them is not there.