SkyQon admin console
PLATFORM ADMIN
Admin console
Console home
Everything the platform team administers, in five clusters. The strip below is
read live; anything not measured shows as
— rather than a zero.
—
Tenants
—
Active
—
On trial
—
Paused
—
Upgrades waiting
Infrastructure
The console map
Five clusters in the rail, plus one action. Open any panel from here, from the
rail, or with ⌘K.
Where the written guidance lives
The SkyQon Digital Trust Center Administration Guide (13 parts —
orientation, architecture, identity, monitoring, acting on findings, evidence,
integrations, operations, administration, troubleshooting, reference, roadmap)
and the five beginner guides are documents in the repository, not pages on
this host — no route serves them, so there is deliberately no link here to
click. They are at
docs/admin-guide/ and docs/guides/.
Publishing them behind the console is separate work; until then, treat the
repository copy as the authority.
Add a new tenant
Provision a customer workspace in a few guided steps — identity, initial
admin login, plan, add-ons and domains. The wizard creates everything
directly and writes an audit entry; no SSH needed.
Tenants
Loading…
| Tenant | Plan | Status | Subscription | Domains | Logins | Last scan | Actions |
|---|
Agent releases
A customer's updater installs a release only when it is signed,
the customer set that agent to Automatic, and the release has
reached stable. New releases start as canary
(our own agents only) and are promoted automatically after the soak period.
Pause stops a release being offered to anyone;
Promote now skips the rest of the soak.
Loading…
Share an agent
Creates a link for one agent and one named recipient. They
download the source — no SkyQon account needed. The URL and
its SHA-256 are shown once; only the hash is stored, so a
lost link is re-minted, never recovered.
Links
Pause is reversible — the same URL resumes when you
enable it again, so you never have to re-send a link. Revoke
is permanent and cannot be undone; the row still stays, because the
question a filing asks is what we handed out and to whom.
Loading…
Recent downloads
Every fetch, with the exact version and digest served. A download with no
matching agent enrollment means source was supplied but never registered.
Loading…
Storage & retention
High-volume inbound telemetry (CSP/NEL, DMARC, TLS-RPT) is auto-pruned on
a daily sweep; evidence and latest-state data are retained. Retention is
the lever — not compression. Largest tables below;
auto-pruned ones are tagged.
Loading…
Telemetry retention window (fallback)
Each tenant’s window follows its plan by default
(Free 30d · Starter 6mo · Pro 1yr · Growth 2yr · Business 3yr), or a
per-tenant override set from the Tenants tab. This global value is the
fallback for tenants whose plan has no mapping. Floored at 30 days so
evidence-adjacent signal isn’t lost; on/off stays an ops decision.
days
Per-tier scan frequency
Each tier has a floor (the fastest external-scan cadence
the tier is allowed to run) and a default (what a tenant
of that tier runs at when it has no per-tenant override). Changes take
effect within one scheduler tick (~60 s), no restart. Reset
reverts a field to the built-in code value. A default can never be faster
than its tier's floor, and no tier can run faster than
5 min.
Loading…
| Tier | Floor (fastest allowed) | Default (unless overridden) |
|---|
Per-tenant override
Pin one tenant to a specific external-scan interval, independent of its
tier default. Rejected below the tenant's plan floor. Clear
removes the override so the tenant falls back to its tier default / file.
This touches only the external scan — the other per-scanner cadences are
set from the Tenants tab's schedule editor.
Business-registry datasets
OV/EV identity cross-checks for Belgium run against the
official KBO Open Data Full extract instead of a live
API. Download the monthly ZIP from the
KBO Open Data portal
(free registration) and upload it here as-is — the file is sliced into
chunks client-side (Cloudflare caps single requests at ~100 MB),
reassembled on the server, and imported in the background. BE
verifications switch to the new extract the moment it goes
active; until a first upload, BE certs stay unsupported.
Loading…
New notice
Post a banner to every tenant — a planned maintenance
window, an incident, or an announcement.
It shows on the dashboard (all signed-in users) and, when audience is
Everyone, on the login screen too. A notice is live while
Active is on and the current time is inside its window (leave
the times blank for "now / no end"). No restart needed — live on save.
All notices
Newest first. “Live” = currently shown to tenants.
Loading…
Upgrade requests
Request-to-buy submissions from tenant admins. Fulfil by manual invoice, then mark won.
Loading…
| Submitted | Tenant | Requested plan | Contact | Seats | Note | Status | Actions |
|---|
Proration helper (manual invoicing)
Mid-cycle tier change: what to credit for unused time on the old plan
and what to invoice now. Advisory only — 30-day month convention,
ex-VAT, EUR list price. Nothing is stored or charged from here.
(Paddle computes proration natively once checkout activates; this
helper retires then.)
Run a free scan
The exact scan a prospect gets on
dashboard.skyqon.com/check
— certificate & TLS, email authentication, DNS security and domain
registration — with the same Domain Check Score the page
shows (the plain average of the section scores). Runs fresh every time:
no result cache, no anonymous daily budget, not counted in the
anonymous aggregates, and no operator email (you are the operator).
Nothing is stored. The PDF lead-magnet scan on skyqon.com/free-scan
quotes the same Domain Check Score. The paid dashboard's Digital Trust
Score covers a whole estate and is calculated differently.
Acquisition
Self-serve signups grouped by the surface that sent them (
?src=
on /signup, e.g. ncsc for the NCSC Mail Check /
Web Check displacement landing). Shows how far each campaign converted:
Free → Trial → Paid. Direct / operator-created
tenants have no source.
Loading…
| Source | Signups | Paid | Trialing | Free | Inactive | First | Latest |
|---|
Staff activity
Every action SkyQon staff took on a customer's account — plan and
subscription changes, add-on grants, the pause switch, scan-cadence
overrides, tenant erase and export, platform-settings changes. Written
to
Staff changes to a customer's people — logins, roles, deactivation, password resets — also appear on that customer's own Activity page. The account-level changes listed here do not; whether they should is an open product decision.
platform_audit_log (GDPR Art. 30, retained even
after a tenant is hard-erased) and, until now, readable only by opening
the database by hand.
Staff changes to a customer's people — logins, roles, deactivation, password resets — also appear on that customer's own Activity page. The account-level changes listed here do not; whether they should is an open product decision.
Loading…
| When (UTC) | Staff member | Action | Customer | Details |
|---|
Trial arc
The temporal companion to Acquisition: how self-serve trials
progress through activation — signup → domain → first
scan → alert → report → upgrade intent —
plus time-to-first-value and which live trials have stalled
(no completed scan after a few days) so you can reach out before they lapse.
Derived from existing activity; no tracking pixels.
Loading…
| Tenant | Source | Stage | Furthest | TTFV | Trial left | Signed up |
|---|
Available add-ons
The full add-on catalogue. Add-ons are billed separately from the plan and
attach to any tier. To assign one, open a tenant's ⋯ More →
Add-ons from the Tenants tab. This page is reference only.
Platform settings
Live overrides of the deployment’s
.env — no container
restart needed. The web app picks a change up immediately, the
scheduler within one tick (~60 s). Clear reverts
to the value in .env. Secrets are write-only: they can be
set or rotated here but never read back.
Loading…
Environment-managed (read-only)
Infra-coupled settings that deliberately stay in
.env on
the box (change there + --force-recreate). Shown here so
this page is the full picture.
HA / Infrastructure
Read-only view of the database HA cluster, as seen from this app instance
(which always reaches the current leader via its
node-local pgproxy, so the app DSN never changes on failover).
Failover is automatic. Patroni + etcd
(Phase C) promote the replica and flip the Cloudflare origin with
no operator step — measured RTO ≈ 40 s at the database and
≈ 50–80 s user-facing, RPO ≈ 0.
Do not hand-promote a node: under Patroni that risks
split-brain. To inspect cluster state use
patronictl list on any database node;
recover.sh / rebuild-replica.sh are
break-glass only, for when Patroni itself is broken.
Loading…
| Replica | State | Sync | Lag (bytes) | Lag (time) | Sent LSN | Replay LSN |
|---|
Component health
Every subsystem the scheduler runs. Each one isolates its own errors so
a single broken component cannot stop the others — which also means a
component can fail every run without affecting
/health or
anything else on this page. This is where that shows up.
Degraded means it has failed at least once in a row;
Failed means it has reached the alert threshold and
the operator has been paged.
Loading…
| Component | Scope | State | Last run | Failures | Last error |
|---|
Agent sandbox
Free, short-lived test certificates for AI agents that
customers are building, signed by the sandbox's own root (not SkyQon's
production PKI). Customers request them from Machine identities → Agent
identity sandbox, or through the API. Every change here is written to
Staff activity.
Loading…
days
Sandbox root
Activity
Limits per plan
Top accounts (last 30 days)
Blocked accounts
Most recent certificates
CT monitoring
The self-hosted Certificate Transparency reader (certspotter on
ctdashboard) and every public log it follows. Each check
below is the same test the ct_reader watchdog runs, shown
with its evidence — so a green panel is a confirmation, not just the
absence of an alarm. Figures are what the reader reported in its last
heartbeat (every 15 minutes).
Loading…
Re-check now re-runs the checks here and updates Component health
immediately. The other buttons are carried out on the reader host: it picks
them up within about a minute and reports back below. Quarantine or release a single
log from its row in the table.
Logs followed
| Log | State | Behind (entries) | Last full cycle | Last progress |
|---|
Escalation and recovery
Holding the pager silences escalation for a known condition —
a CT log being throttled, or planned work on the reader host. It does
not change the verdict: the checks above keep running, Component health
keeps recording the failure, and this panel keeps showing red. Every hold expires
on its own (24 hours maximum).
Re-scanning crt.sh history re-queues every completed backfill so
certificates logged while the reader was down are recovered. certspotter resumes at
each log's head, so that window is never re-read by the live path. Leave the tenant
blank for every active tenant. Depth is unchanged — this never grants a tenant the
Advanced CT add-on's full history.
Recent reader actions
No actions yet.
| Requested | Action | By | Status | Result |
|---|
Users
Every login across all tenants. Role changes take effect on the user's
next sign-in; per-tenant login management (create, deactivate, reset)
lives in the tenant's detail view.
Loading…
| Tenant | Role | Status | Last login | Created | Actions |
|---|