Platform
Super-admin console
The platform console for the people who run Harbor itself, every company, its plan and status, the price list, platform admins and the platform audit log.
Harbor TMS is sold to many brokerages, and each brokerage is a separate company (a tenant) whose data is walled off from every other. The super-admin console sits above all of them. It is for the people who run the platform, not for brokerage staff: it shows every company, its plan, status and seats, and lets a platform admin extend a trial, change a plan, suspend a company or delete it. It never shows a company's freight data.
- Where
- /platform, from the account menu → Platform
- Who
- Platform admins only, and only in a session signed in with two-factor
- Sections
- Overview, Organizations, Plans, Admins, Audit log
- Records to
- The platform audit log (and the company's own audit log where relevant)
Who can reach it
Three things must all be true, checked on the server for every page and every action:
- You are signed in to the panel with a staff account.
- That account is marked as a platform admin. This is read from the database on each request.
- This session was signed in with a two-factor code.
Anyone else gets "no access". Platform admins see a Platform link in their account menu; hiding the link from everyone else is a convenience, not the security.
The first platform admin is set up by whoever runs the server (in the seeded demo, the owner account owais). After that, platform admins add and remove each other on Admins.
The console has its own simple bar of links (Overview, Organizations, Plans, Admins, Audit log) and no tenant sidebar.
Overview
The platform at a glance, titled "Platform" with the number of companies.
| Figure or list | Meaning |
|---|---|
| MRR | Monthly recurring revenue: the monthly price of every active plan |
| Trials ending this week | Companies whose free trial ends within 7 days |
| Payment due | Companies whose last payment failed |
| Companies by status | Free trial, Active, Payment due, Suspended, Cancelled |
| Sign-ups per month | New companies each month |
Two tables follow: Trials ending this week (company, plan, trial end date) and Payment due (company, plan).
Organizations
Every company on the platform, paged and filtered in the database. Search by name, slug or email, and filter by status and plan.
| Column | Meaning |
|---|---|
| Company | Name, linking to the company page |
| Status | Free trial, Active, Payment due, Suspended or Cancelled |
| Plan | The plan name |
| Seats | Seats used |
| Signed up | Date |
Previous and Next move between pages.
One company
The company page shows Plan (and its price), Seats used ("Override set" or "From the plan"), Trial days left or Renews, and Users. Then:
- Users: each person, their roles, status and last sign-in.
- Billing events: what Stripe (or the test-mode provider) reported, with the event type and ID.
- Platform history: everything the platform did to this company.
Actions
| Section | Action | Rules |
|---|---|---|
| Plan | Change plan | Refused if it is already on that plan |
| Trial | Extend trial by 1 to 365 days | Counted from the current trial end if still in the future, otherwise from today. Refused if the company already pays, or is suspended ("Reactivate the company first.") |
| Seats | Save seats: a seat override, or empty to use the plan's limit | 1 to 100,000 |
| Suspend | Suspend with a reason (3–200 characters, shown to the company) | "Nobody at this company can sign in, and everyone signed in is signed out at their next click. Their data stays." |
| Suspended | Reactivate | Restores the status it had before suspension |
| Account owner | Send password reset | To the company's first active owner, at most 3 an hour |
| Account owner | Resend verification | Refused if the email is already confirmed |
| Account owner | Cancel subscription | "Billing stops and the account becomes read-only." Refused if there is none |
| Delete now | Type the company's slug, then Delete now | Erases the company and all its data at once. Cannot be undone |
A platform admin cannot suspend or delete the company they sign in with ("You can't suspend the company you sign in with."). A suspended company's users see "This account is suspended: (reason). Contact support to reopen it." when they try to sign in, and so do its portal users.
Plans
The price list. Plans are edited and retired, never deleted, so companies stay on what they bought.
| Column | Meaning |
|---|---|
| Plan | Name and code |
| Price | Per month |
| Seats | Seat limit |
| Trial | Trial days |
| Status | On sale or Retired, plus a Public badge when it is offered on sign-up |
| Companies | How many companies are on it |
Add or edit a plan
| Field | Rules |
|---|---|
| Code | 2–40 letters, digits, dashes or underscores. Fixed once created |
| Name | 2–40 characters |
| Price a month ($) | Like 149 or 149.00 |
| Seats | At least 1 |
| Trial days | 0 to 365 |
| Stripe price id (optional) | Starts with price_ |
| Description | Up to 200 characters |
| Offered on sign-up | Whether new companies can pick it |
| On sale | Whether it can be bought |
Retire asks first: "It stops being sold. The N companies on it keep it. Plans are never deleted."
Admins
Platform admins: each person, whether two-factor is on, and their last sign-in.
- Make platform admin: enter the email of an active staff account. Refused if no active staff account has that email, or the person already is one.
- Remove: "They lose the platform console at once. Their company account is untouched." You cannot remove yourself ("Ask another platform admin.") or the last platform admin.
Audit log
Platform audit log: everything platform admins and the billing provider did, newest first, paged in the database. Columns: When (UTC), Who, Company and What. Entries include org.change_plan, org.extend_trial, org.seat_override, org.suspend, org.reactivate, org.cancel_subscription, org.admin_password_reset, org.verification_resent, org.delete, plan changes, admin grants and removals, and a company closing or keeping its own account (org.deletion_requested, org.deletion_cancelled).
Related
- Billing: what a company sees of its plan
- Export & close the account
- Your data
- Security, for developers