Deployment

Platform administration

Creating teams, limits, retention, the system AI default and platform secrets.

The platform console manages the installation as a whole: which teams exist, their limits, and the settings every team shares. It is a separate application with its own address, its own sign-in and its own database account. Platform administrators cannot see team members, scans, findings or any other team data, and cannot join a team through the console.

A single-team installation does not need the platform console. Deploy it when you add teams, or to set limits and the shared AI configuration.

Deploying the console

The console signs in only through a dedicated OpenID Connect application at your identity provider; it has no passwords. It runs next to ScanSuite from docker-compose.platform.yml, or through the Terraform deployment with platform_console_enabled = true, and should be reachable from the internal network only.

  1. 01
    Create its database account

    Run python -m platform_console.database --role scansuite_platform with the schema owner's credentials, then give the role a login password. It can read and change only the platform tables.

  2. 02
    Register it with the identity provider

    A confidential client with the redirect URI https://<platform host>/auth/callback.

  3. 03
    Create the first platform administrator

    python -m platform_console.bootstrap --subject <immutable subject of that person at the provider>.

  4. 04
    Configure and start it

    Set the PLATFORM_* settings (its own secret key, database URI, Redis URI, OIDC client and wrapping keys) and start the service.

Platform groups

GroupCan
Root administratorsEverything below, plus the system settings, revoking platform secrets and managing platform administrators.
OperatorsCreate, suspend and archive teams, set their limits, and schedule team deletion. Read settings and the audit log.
AuditorsRead teams, settings, platform secret metadata and the audit log.

The console hides what a group cannot use, and the server refuses it either way. Removing a group takes effect immediately. The last active root administrator cannot be removed.

ScanSuite platform administrators
Platform administrators and their groups
ScanSuite platform console, auditor view
The same Teams section for an auditor: read-only, without editors

Teams

The Teams section lists every team with its status and limits.

ScanSuite platform teams
Teams with their limits; an archived team scheduled for deletion
StatusMeaning
ActiveThe team works normally.
SuspendedNobody can work in the team, and its scans stop. Data is kept.
ArchivedThe team is closed. Its deletion can be scheduled.

After creating a team, give it a first administrator with a one-time claim (see Members and accounts, "Accounts from the command line"). From then on, the team manages its own members.

Creating additional teams is switched off until PLATFORM_ALLOW_TEAM_CREATION=true is set, so an upgraded installation stays single-team until you decide otherwise.

Limits

LimitEffect
Concurrent scansHow many scans the team may have queued or running at once. Further scans are refused with a message until one finishes; scheduled runs are skipped and logged.
Retention daysFinished scans older than this are deleted every night, with their reports and stored files. The newest scan of each product, scan type and target is always kept, because incremental scans and fix verification compare against it. Findings, assets and credentials are kept.
Monthly AI tokensThe most AI tokens the team may use per month, including through its own AI configuration. Teams can set a lower budget themselves.

A team without limits is not limited and keeps all of its scans. Lifecycle sets the limits proposed for new teams.

Deleting a team

Archive the team, then click Schedule deletion. Its data is deleted after the grace period set under Lifecycle (30 days by default). Until then, Cancel deletion, or setting the team active again, stops it.

When the date passes, ScanSuite deletes the team's stored files and all of its data. The team itself remains, marked deleted, so historical references still resolve. The platform audit log records how many rows were deleted, and nothing else. The deletion runs inside ScanSuite, within the team's own scope; the platform console never reads team data.

System settings

SectionWhat it sets
System AIThe AI configuration teams use when they choose "Use platform default". Test system AI sends one short prompt and reports only whether it answered.
CapacityThe remaining runs of the installation's shared Nessus scanner, for all teams together. Empty means no limit.
LifecycleLimits proposed for new teams, and the grace period before a scheduled deletion.

Changes need a recent sign-in and are recorded in the platform audit log.

ScanSuite system AI default
The system AI default, which teams inherit
ScanSuite shared scanner capacity
The shared Nessus capacity
ScanSuite team lifecycle defaults
Lifecycle defaults for new teams, and the deletion grace period

Platform secrets

The AI key of the system configuration is stored encrypted and is never shown again. Saving a new key replaces it; the previous version stays usable by scans that started with it until you Revoke it under Platform secrets. The version in use cannot be revoked.

ScanSuite platform secrets
Platform secret versions after a key rotation: the superseded version can be revoked

The encryption keys themselves are rotated on the server, without decrypting any stored value:

bash
# after adding the new key to the key set and making it the active key
docker compose run --rm migrate python -m configuration.rewrap
docker compose run --rm migrate python -m configuration.rewrap --check

Remove the old key only when --check reports that nothing uses it.

Last reviewed 2026-09-19