Skip to content
Get started

Quickstart

This guide takes you from zero to a running edge evaluation in a few minutes. We’ll create a workspace, add a flag, mint a service-account token, and call /v1/evaluate.

Open the dashboard and register. The first user on a self-hosted install becomes the owner of the bootstrap workspace. On hosted f69, you land on /profile where you can create or join workspaces.

From /profile, click New workspace and pick a slug. Slugs must be lowercase letters, digits, or hyphens (length limits apply). Each workspace ships with a default project that already has dev, staging, and prod environments.

Workspace: acme
└── Project: default
├── dev
├── staging
└── prod

You can add more projects from the workspace overview.

Inside your workspace, open Features and click New feature. A feature has:

  • A key (unique within the project, e.g. new-checkout).
  • A default value (true / false).
  • One or more rules per environment.

Start with a simple boolean default of false, then save.

Edge requests authenticate with a service account, which is bound to exactly one environment.

  1. Go to Settings → Service accounts.
  2. Click New service account.
  3. Pick the environment (e.g. prod) and a role (reader evaluates only; writer may also identify entities).
  4. Copy the token shown once - it has the shape xxxxxxxx@f69:<uuid>.<secret>. Store it as F69_TOKEN.

If you lose it, mint a new one - the secret is hashed at rest and cannot be recovered.

Tell the edge who you are evaluating for. The body’s environment is implicit (it comes from the token).

Terminal window
curl -X POST https://edge.example.com/v1/identify \
-H "Authorization: Bearer $F69_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"type": "user",
"external_id": "u-alice",
"attributes": { "country": "NG", "plan": "pro" }
}'

type is the entity kind (user, workspace, etc.) and external_id is your stable identifier for the entity.

Now ask for a decision. Omit keys to evaluate every flag in the project, or pass an explicit list.

Terminal window
curl -X POST https://edge.example.com/v1/evaluate \
-H "Authorization: Bearer $F69_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"id": "u-alice",
"type": "user",
"keys": ["new-checkout"]
}'

The response is a JSON array, one entry per flag:

[
{
"key": "new-checkout",
"value": false,
"reason": "DEFAULT",
"version": "live"
}
]

reason tells you which path resolved the decision: TARGETING_MATCH, SPLIT (rollout), DEFAULT, FALLBACK, or ERROR.