Kaiten

Get Started

Console Tour

Five minutes through the console on the Kaiten Sushi Shop demo — customers, licenses and the entitlements they grant, live usage against those grants, flags that read the contract, and the seeded service accounts.

The fastest way to understand Kaiten's model is to look at a populated one. This tour walks the console over the Kaiten Sushi Shop demo — a restaurant-software vendor with four customers and six instances on three License families — and stops at the five views you will use most.

Get demo data

The demo data is offered in one kind of organization only: a Kaiten Cloud demo sandbox. There, a banner above every page reads This is a demo/sandbox environment — data may be reset at any time. and carries a Seed demo data button. Seeding runs in the background: the banner reads Seeding demo data… until the run ends, and the entities then appear in the regular views. An organization that is not a demo sandbox shows no banner and offers no demo data.

Two behaviors worth knowing:

  • One run at a time. A seed or a reset started while another one runs is refused.
  • Reset. Once the sandbox holds the data, the banner links to Settings, where the Demo sandbox card offers Reset demo data. After a confirmation, the reset removes what the seed created, and nothing else: the customers, Licenses, entitlements, flags, releases and zones of the dataset are deleted, its metadata fields are archived, and what you created yourself stays. The two seeded service accounts stay as well — a service account cannot be deleted. The banner then offers Seed demo data again.

The dataset is the seeder's demo profile, which task quickstart loads with the stack, as in the quickstart setup:

task dev          # the stack, its accounts, the Kaiten Sushi Shop dataset, and the console

On a stack already started with task up, which loads no product data, run the seeder alone — under the compose project task uses, kaiten-oss; its default profile is demo:

KAITEN_CONTAINER_PREFIX=kaiten-oss docker compose -p kaiten-oss run --rm seed-data

The console is at http://localhost:3000; sign in with the dev user switcher.

What the seed creates

EntityDetails
Customers (4)Sakura Tokyo, Ninja Osaka, Demo Restaurant, Kappa Kyoto
Licenses (3 families, 6 versions)Starter; Standard v1 and v2; Premium v1 (archived), v2, and v3 (a draft)
Entitlements (6)Four metered: Menu Items, Monthly Orders (monthly window), Delivery Drivers, Locations — plus the boolean delivery-tracking and the configuration support-tier
Instances (6)Two for Sakura Tokyo, two for Ninja Osaka, one each for Demo Restaurant and Kappa Kyoto — each under a License version, each placed in a deployment zone
UsageInitial usage on every metered entitlement of every instance — the meters are live from the first screen
Feature flags (7)delivery-tracking-enabled, analytics-dashboard-enabled, new-ordering-flow, random-discount, promo-banner, discount-campaign, loyalty-offer
DeploymentsFour component families in seven versions, two releases (2026.7.0 → 2026.8.0), three deployment zones and their deployment journal
Service accounts (2)"Ops Team", the account the seed acted as, and "SDK" — each holding a token

The dataset carries its own history — when instances were created, and the deployment journal — and seeding dates it relative to the moment you run it.

Stop 1 — Customers

Open Customers in the sidebar. Four restaurant groups, four commercial situations:

  • Sakura Tokyo — production on Premium, the highest entitlement values, and a sales demo on Starter: one customer, two instances, two Licenses.
  • Ninja Osaka — production on Starter, the tight limits, and a delivery pilot on the second version of Standard, the one that grants delivery tracking.
  • Demo Restaurant — on Standard, in between.
  • Kappa Kyoto — on the first version of Premium, kept after that version was withdrawn from sale.

Click any of them: the customer page's Instances card lists where the product runs for that customer, and which License each instance is under. That customer → instance → license chain is the spine of everything else in this tour.

The Customers page of Kaiten Sushi Shop: Sakura Tokyo and Ninja Osaka with two instances each, Demo Restaurant and Kappa Kyoto with one, and the License types each customer runs under.The Customers page of Kaiten Sushi Shop: Sakura Tokyo and Ninja Osaka with two instances each, Demo Restaurant and Kappa Kyoto with one, and the License types each customer runs under. The Sakura Tokyo customer page: the Customer details card and, in the Instances card, Sakura Tokyo Production under Premium and Sakura Tokyo Demo under Starter.The Sakura Tokyo customer page: the Customer details card and, in the Instances card, Sakura Tokyo Production under Premium and Sakura Tokyo Demo under Starter.

Stop 2 — Licenses and their entitlements

Open Licenses, expand a family, and open one of its versions. Each product is a family of versioned License objects, and a version's page holds the table that matters, Entitlements & limits: the entitlements it grants, with their values — the contract side of the model. Next to each numeric value sits the grant's overage allowance: how far usage may run past the value before a report is refused.

LicenseStateMenu ItemsMonthly OrdersDelivery DriversLocationsdelivery-trackingOverage allowance
Starterpublished, default52021false0 % — hard caps
Standard v1published, default1010053false10 %
Standard v2published1010053true10 %
Premium v1archived501,0005unlimitedtrue20 %
Premium v2published, default501,00010unlimitedtrue20 %
Premium v3draft1001,00010unlimitedtrue20 %

A family serves its default version, or else its newest published one: Standard keeps serving v1 although v2, which adds courier tracking, is on sale. Premium's v1 is withdrawn from sale — no new instance can be given it, while Kappa Kyoto keeps it — and v3 is a draft that nothing serves yet.

The numeric entitlements are metered quotas — instances report usage against them, and the allowance is written on each grant, so the same entitlement is hard-capped on Starter and tolerant on Premium. Premium's Locations grant is the unlimited sentinel: no cap, no allowance. The boolean delivery-tracking is an included-or-not right — the one the flag in Stop 4 reads. The configuration entitlement support-tier carries a JSON value per License: the support channels and response commitment each tier includes.

The page of Premium v2, published and default version of its family: under Entitlements & limits, Menu Items 50, Monthly Orders 1,000 and Delivery Drivers 10 with a 20% overage allowance, Locations unlimited, Delivery Tracking enabled, Support Tier configured.The page of Premium v2, published and default version of its family: under Entitlements & limits, Menu Items 50, Monthly Orders 1,000 and Delivery Drivers 10 with a 20% overage allowance, Locations unlimited, Delivery Tracking enabled, Support Tier configured.

The console writes a boolean grant as Enabled or Disabled, an allowance of zero as Hard limit, and a configuration grant as Configured.

Stop 3 — Usage against the grants

Open Customers → Ninja Osaka, then its instance ninja-osaka-prod, then the Entitlements & Usage tab. Every meter reads the observed usage against the grant — its percentage measured against the most the grant allows, the value plus its allowance — and the seed puts each instance in a different situation:

  • Ninja Osaka (Starter) — Menu Items at 5 of 5: at the hard cap, the meter at 100 % — Limit reached — so the next report that would push the total past 5 is refused; Locations sits at its cap too, 1 of 1. Monthly Orders at 18 of 20, inside the current calendar month — the view shows the window's start and end.
  • Sakura Tokyo (Premium v2) — Menu Items at 42 of 50, a meter at 70 % of the 60 that Premium's 20 % allowance permits; Locations at 3 against an unlimited grant.
  • Demo Restaurant (Standard v1) — Menu Items at 6 of 10 and Monthly Orders at 41 of 100, comfortably inside a grant that tolerates 10 % overage.
  • Kappa Kyoto (Premium v1) — Delivery Drivers at 5 of 5: the first version's value, and the reason to move the instance to v2, which grants 10.

Nothing on this screen was typed in: the seeder wrote the totals that usage reports leave behind — the same record your product's backend builds as it reports. The quickstart sends a few and watches a cap push back.

The Entitlements & Usage tab of Ninja Osaka Production: Menu Items at 5 of 5 and Locations at 1 of 1, both at 100% with the Limit reached badge, Monthly Orders at 18 of 20 inside its current window, Delivery Drivers at 1 of 2.The Entitlements & Usage tab of Ninja Osaka Production: Menu Items at 5 of 5 and Locations at 1 of 1, both at 100% with the Limit reached badge, Monthly Orders at 18 of 20 inside its current window, Delivery Drivers at 1 of 2.

Stop 4 — Feature flags

Open Feature Flags. The one to inspect is delivery-tracking-enabled: its targeting rule lists no customers: it reads the delivery-tracking entitlement through a CEL expression. Sakura Tokyo and Kappa Kyoto resolve to on because their versions of Premium grant the entitlement; Ninja Osaka resolves to off because Starter does not grant it, and so does Demo Restaurant, whose version of Standard does not either. Upgrade a License, and the flag follows — no flag edit involved.

Also worth a look: promo-banner (an object flag, whose variants carry payloads, serving its salmon-week variant to the Standard and Premium families), analytics-dashboard-enabled (a rule combining a server-side fact with context your product sends), and random-discount (a 50/50 rollout).

The Targeting tab of the Delivery Tracking Enabled flag: one rule, Delivery tracking entitlement granted, whose expression reads the delivery-tracking entitlement and returns the variant on, above the fallback step.The Targeting tab of the Delivery Tracking Enabled flag: one rule, Delivery tracking entitlement granted, whose expression reads the delivery-tracking entitlement and returns the variant on, above the fallback step.

Stop 5 — Service accounts

Open Integrations → Service Accounts. The seed created two machine identities: Ops Team, the account the whole seed acted as — everything it seeded records it as its creator — with a token that writes the control plane, and SDK, whose token reads feature flags and entitlements. Their secrets were never printed. Generate a token of your own here (it is shown once) and you can replay this tour over the API, which is what the quickstart does, building the same chain from curl.

The Service Accounts page: Ops Team and SDK, each with one token and a Generate Token action; the SDK account is open on its token, which carries read:feature_flags and read:entitlements.The Service Accounts page: Ops Team and SDK, each with one token and a Generate Token action; the SDK account is open on its token, which carries read:feature_flags and read:entitlements.

What you just saw

One model, five views: who you sell to (Customers), what they bought (Licenses granting Entitlements), what they consumed against it (Usage), how the product behaves for them (Flags reading the contract), and how machines talk to it all (Service Accounts). The quickstart builds this same chain from the API; the core concepts explain each piece.

On this page