flaghoist
v0.5.2
Published
Scaffold, deploy, and manage your Flaghoist feature-flag service from the terminal.
Maintainers
Readme
flaghoist
Feature flags you run yourself. This is the command line tool for setting up a Flaghoist server and managing the flags on it.
Your whole project is one flaghoist.toml file. The CLI turns that into a Cloudflare Worker, or
hands you the code if you would rather own it.
npm create flaghoist@latest team-flags
cd team-flags
npx flaghoist deployThat gives you an OFREP read API, an admin API, and a dashboard at /admin, all from a single
deploy. On Cloudflare KV, the first deploy also creates the KV namespace for you and writes its id
into wrangler.toml.
Setup asks a few questions (where it runs, which storage, whether you want accounts) and turns
accounts on by default, so people sign in as themselves rather than share the admin token. It
generates an AUTH_PEPPER, keeps it in a git-ignored .env, and deploy sets it as a Worker secret
for you. To set up a directory you already have, run flaghoist init instead of scaffolding a new
one.
Managing flags
Point the CLI at your server with --url and --token, or set FLAGS_URL and
FLAGS_ADMIN_TOKEN. Since accounts are on by default, flaghoist login --url <server> signs you in
and saves a personal access token; the admin token is the fallback for a server with accounts off.
flaghoist flag list
flaghoist flag create new-checkout --desc "The redesigned checkout"
flaghoist flag toggle new-checkout --on
flaghoist flag rollout new-checkout 25Rollouts are sticky. A user who lands inside 25 percent stays inside it as you go to 50, so nobody flickers in and out between deploys.
Managing members
On a server with user accounts turned on, admins invite and manage people from the command line too. Invite and reset commands print a link to send yourself, and the server emails it as well when it has an email sender set up.
flaghoist users invite [email protected] --role editor
flaghoist users list
flaghoist users role [email protected] admin
flaghoist users reset [email protected]Owning the code
npx flaghoist ejectWrites src/index.ts, wrangler.toml and package.json into your project. From there it is a
normal Worker and the CLI steps out of the way.
Flags are boolean only. There are no multivariate flags, experiments or scheduled rules, and there is no plan to imply otherwise.
Status
Pre-alpha, built and maintained by one person. The API can still change without notice, and production use is not recommended yet. If you try it and something breaks, an issue is genuinely useful.
Apache-2.0. Part of Flaghoist.
