# itonami.cloud — go live (paid path)

Measurable gate: `GET https://itonami.cloud/api/status`  
Product surface should be ~100%. Remaining gaps are **owner Stripe secrets** + **one paid checkout**.


## 0. Free tenant claim (no Stripe — prove self-registration)

Full free-path runbook: [free-path.md](./free-path.md).

1. Open https://itonami.cloud/isco-1212/ (unique org/repo is prefilled; **do not use gftdcojp/***)
2. Click **Sign up with Passkey (claim free tenant)**
3. Verify:

```bash
curl -sS https://itonami.cloud/api/fleet/metrics | jq '.tenants'
curl -sS https://itonami.cloud/api/status | jq '.checklist[] | select(.id=="free-tenant-claim")'
```

`selfRegisteredOwners` / `free-tenant-claim.ok` should become non-zero.

Then continue with Stripe (sections below) for paid.

## 1. See current maturity

```bash
curl -sS https://itonami.cloud/api/status | jq '.scores, .bottleneck, .checklist'
curl -sS https://itonami.cloud/api/billing/status | jq .
curl -sS https://itonami.cloud/api/gftdcojp/cloud-itonami/metrics | jq .
```

- Cockpit UI: https://itonami.cloud/#go-live
- HR paid path: https://itonami.cloud/isco-1212/

## 2. Configure Stripe (owner)

**Test mode is enough** for checklist `stripe-configured`: use `sk_test_…` and
test Price ids, then:

```bash
npx wrangler pages secret put STRIPE_SECRET_KEY --project-name=cloud-itonami
npx wrangler pages secret put STRIPE_PRICE_LLM_PROPOSAL --project-name=cloud-itonami
npx wrangler pages secret put STRIPE_PRICE_STORAGE_GB --project-name=cloud-itonami
npx wrangler pages secret put STRIPE_WEBHOOK_SECRET --project-name=cloud-itonami
curl -sS https://itonami.cloud/api/billing/status | jq '{readyForLiveCheckout,mode,missing}'
```

## 2b. Configure Stripe (owner) — detail


Follow [stripe-billing-setup.md](./stripe-billing-setup.md). Required Pages secrets:

| Secret | Purpose |
|---|---|
| `STRIPE_SECRET_KEY` | Checkout session create |
| `STRIPE_PRICE_LLM_PROPOSAL` | Metered LLM proposal price |
| `STRIPE_PRICE_STORAGE_GB` | Metered storage GiB price |
| `STRIPE_WEBHOOK_SECRET` | Entitlement after `checkout.session.completed` |

```bash
cd orgs/gftdcojp/cloud-itonami   # or clone gftdcojp/cloud-itonami
npx wrangler pages secret put STRIPE_SECRET_KEY --project-name=cloud-itonami
npx wrangler pages secret put STRIPE_PRICE_LLM_PROPOSAL --project-name=cloud-itonami
npx wrangler pages secret put STRIPE_PRICE_STORAGE_GB --project-name=cloud-itonami
npx wrangler pages secret put STRIPE_WEBHOOK_SECRET --project-name=cloud-itonami
```

Webhook endpoint: `https://itonami.cloud/api/stripe/webhook`  
(events: at least `checkout.session.completed`)

Re-check:

```bash
curl -sS https://itonami.cloud/api/billing/status | jq '.readyForLiveCheckout, .readyForEntitlement, .components'
```

Both readiness flags should become `true`.

## 3. First paid tenant (hyp/itonami-smb-pay)

1. Open https://itonami.cloud/isco-1212/
2. Sign up with passkey (webauthn) for an org/repo
3. Click **Subscribe via Stripe Checkout**
4. Complete payment with a real (or Stripe test) method matching the key mode

Verify:

```bash
curl -sS https://itonami.cloud/api/gftdcojp/cloud-itonami/metrics | jq .
curl -sS https://itonami.cloud/api/status | jq '.checklist[] | select(.id=="paid-tenant" or .id=="stripe-configured")'
```

`paid-tenant.ok` should become `true` once entitlement is written.

## 4. Product surfaces already live (no Stripe needed)

| Surface | URL |
|---|---|
| Jobs meta-search | https://itonami.cloud/#jobs · `/api/jobs` |
| Open business | https://itonami.cloud/#open-business · `/api/open-business` |
| Open business seed (self-reg) | https://itonami.cloud/api/open-business/8299 |
| Dry-run (counts toward `agentRuns7d`) | `POST /api/open-business/{isic}/intakes` |
| Product metrics (BMC gate) | https://itonami.cloud/api/metrics |
| Fleet metrics | https://itonami.cloud/api/fleet/metrics |
| Marketplace | https://itonami.cloud/marketplace/ |
| Market entry | https://itonami.cloud/#market-entry · `/api/market-entry` |
| Flagship jobs demo | https://cloud-itonami.github.io/cloud-itonami-isic-6399/ |
| Flagship talent demo | https://cloud-itonami.github.io/cloud-itonami-isic-6310/ |
| llms.txt | https://itonami.cloud/llms.txt |

Verify free loop without Stripe:

```bash
curl -sS https://itonami.cloud/api/metrics | jq .
curl -sS -X POST https://itonami.cloud/api/open-business/8299/intakes \
  -H 'content-type: application/json' -d '{"note":"go-live free dry-run"}' | jq '.recorded,.committed'
# after ~60s KV list consistency: agentRuns7d should rise
curl -sS https://itonami.cloud/api/fleet/metrics | jq '.tenants.agentRuns7d'
```

## Non-goals of this runbook

- Does not mint CACAO for you outside isco-1212 webauthn flow
- Does not bypass legal counsel placeholders in `legal/*`
- Does not put secret values in git
