Organizations
Admin → Organizations (/admin/org) edits the top-level Organization
document at /organizations/{orgId}. A user in more than one org uses the
org list on the left to pick which one to edit; the detail pane on the right
is a full profile + member manager.
Only admin and superadmin can open this page. superadmin is additionally
required to deactivate an org or change the plan.
Org profile
Click Edit on the header card to open the form. Fields map 1:1 to the Firestore document:
| Field | Firestore key | Notes |
|---|---|---|
| Name | name | Shown in every header and report. |
| Description | description | Short one-line tagline. |
| Logo | logoS3Key | Upload via the drop-zone; stored in the S3 org-logos/ prefix. |
| Accent colour (aspirational) | brandColor | Used to tint welcome emails and PDF reports — UI lands with the 2026-Q3 branding release. |
| Welcome message (aspirational) | welcomeMessage | Displayed to new members after invite acceptance. |
| Sector | sector | Pick-list from ORG_SECTORS (public safety, SAR, military, energy, …). |
| Contact email | contactEmail | Used as the reply-to on all org emails. |
| Phone | phone | Free-form. |
| Website | website | Link on the org detail header. |
| Country | country | Used for weather/region defaults. |
| Address | address | Street address. |
| Tax ID | taxId | Shown on invoices. |
A new org starts with active = true and inherits the guardian plan. The
Deactivate button is destructive — it sets active = false and hides the
org from everyone except superadmin.
Defaults
The bottom of the detail pane hosts the Defaults section — values every new mission inherits unless overridden at mission-create time:
- Mission retention — days to keep mission docs + media. Capped by the
plan (
videoStorageDayslimit). - E2E default — when on, every new mission has end-to-end encryption
enabled for TACLINK traffic. Requires
Tacticalplan or higher. - AI features — per-flag toggles for
aiCopilot,aiDetection,liveSubtitles,aiMissionReports. Greyed out where the plan does not support them. - Default PTT channels — up to three org-wide channels auto-joined on every mission (Command, Ground, Air is the typical preset).
Integrations
The Integrations drawer is a list of collapsible cards. Each card opens a
short form and saves to /organizations/{orgId}/integrations/{provider}.
- DJI — App ID, App Key, License. Validated against the DJI Developer portal. Without this, dock pairing on DJI management fails with a “missing credentials” banner.
- Panoptic feeds (aspirational) — sensor-fusion ingestion URL for radar / AIS / ADS-B. Roadmapped alongside the Panoptic sensor-fusion layer.
- SSO (Command+) — SAML and OIDC. Hidden on Guardian/Tactical.
- SMTP / Email — custom transport for invites and reports. Defaults to the ARGUS-managed relay.
- Slack / Teams / Discord — bot tokens that the Workflows page can target.
Members section
The right half of the detail pane hosts a compact member manager. It is the same table as the standalone Users page but scoped to the org selected on the left — handy for super-admins juggling several orgs.
Usage dashboard
Below Integrations, a live Usage strip shows:
- Seats used / total (from
ORG_PLAN_LIMITS[plan].maxUsers). - Active missions this month vs.
maxOpsPerMonth. - TACLINK minutes this billing cycle.
- Storage consumed (media + audio) against
videoStorageDays.
Numbers update every 60 seconds from the /organizations/{orgId}/usage
aggregate doc.
Plans
Plan tier is read-only here — change it from Subscription. The four tiers from code:
- Guardian — 5 seats, 2 streams, 20 ops/mo, 720p. Solo and small-crew.
- Tactical — 10 seats, 5 streams, unlimited ops, 1080p, E2E, AI detection.
- Command — 20 seats, 10 streams, 4K, SSO, custom roles, REST API, immutable audit.
- Sovereign — unlimited everything, white-label, dedicated infra.