Subscription
Admin → Subscription (/admin/subscription) shows the plan your org is
currently on, the hard limits that plan implies, which feature flags are
active, and a live usage meter. Plan changes are driven out of band (email
sales@argus.link or your account manager) — the page does not take a
credit card today.
Only superadmin can open it. The page reads
/organizations/{orgId}.plan and derives everything else from
ORG_PLAN_LIMITS in org.ts.
Plan tiers
Four tiers defined in OrgPlan, from smallest to largest:
| Plan | Seats | Streams | Ops/mo | Video | IP cams | Drone storage | Audit | Colour |
|---|---|---|---|---|---|---|---|---|
| Guardian | 5 | 2 | 20 | 720p | 0 | 90 d | basic | green |
| Tactical | 10 | 5 | ∞ | 1080p | 4 | 180 d | full | cyan |
| Command | 20 | 10 | ∞ | 4K | 16 | ∞ | immutable | amber |
| Sovereign | ∞ | ∞ | ∞ | ∞ | ∞ | ∞ | immutable | red |
(∞ = unlimited, which renders as ”—” in the limit cards.)
Limits grid
Ten cards, one per limit, pulled from planLimits(plan):
- Users (
maxUsers) - Orgs (
maxOrgs) — how many child orgs you can spawn - Simultaneous streams (
maxStreams) - Ops per month (
maxOpsPerMonth, suffixed/mo) - Max video resolution (
maxVideoResolution, suffixedp) - IP cameras (
maxIpCameras) - Video storage days (
videoStorageDays, suffixedd) - Audio retention days (
audioRetentionDays, suffixedd) - Observers per drone (
maxObserversPerDrone) - Sub-units (
maxSubUnits)
A value of 0 in the source means unlimited and renders as —.
Features grid
One tile per feature flag from PlanFeatures, with a tick / cross marker
and (for the ordinal flags) the tier — for example AI Search Patterns: multi_drone:
- E2E encryption
- Live subtitles
- AI detection
- Custom AI models (Command+)
- IP cameras
- SSO (Command+)
- REST API (Command+)
- Custom roles (Command+)
- White label (Sovereign)
- Dedicated server (Sovereign)
- Offline mode —
none/basic/full - Audit log —
none/basic/full/immutable - AI copilot
- AI mission reports
- AI search patterns —
none/basic/multi_drone - Branded reports (Command+)
Locked features show a cross and are greyed out. Anywhere the rest of the
admin UI needs one (e.g. custom roles), it checks planFeatures[flag] and
shows a padlock banner if missing.
Usage meter (aspirational detail)
A strip below the limits grid shows live counters against each relevant limit. Current release shows:
- Seats used / total.
- Active missions this billing period /
maxOpsPerMonth. - Storage consumed vs.
videoStorageDays.
Roadmapped for the next release:
- TACLINK minutes this cycle —
taclink.minutes.used/ plan allotment. Covers audio + video + telemetry transport. - GPU inference minutes — AI detection + copilot + live subtitles combined.
- S3 GB — photo + video + audio + tiles footprint.
- Photoreal tile quota — km² of photoreal tiles rendered per month.
- DJI dock licences — seats consumed against your dock-pack.
All meters reset at the start of each billing month (UTC).
Invoices (aspirational)
An Invoices section will list monthly PDFs pulled from the billing partner, with status, amount, currency, and a download link. Shipping alongside the self-serve billing portal in 2026-Q3.
Payment method (aspirational)
Card storage is handled by a PCI-compliant partner (Stripe today); no card data transits or rests on ARGUS infrastructure. The payment-method drawer renders a Stripe Elements form and stores only the tokenized reference against the org.
Changing plan
The header reads “{currentPlanLabel} — Current plan” and the hint below
says “Contact sales to change plan”. The mail icon opens a mailto to
sales@argus.link with the org name pre-filled. A signed order form goes
to billing; ARGUS flips /organizations/{orgId}.plan manually.
Self-serve upgrade / downgrade is on the roadmap.