Skip to main content
Version: 1.8.0

License & Operations

Enterprise only

Not included in DVARA Open Source.

This page covers operational surfaces in the DVARA Flightdeck: personal access tokens, guardrail plugin management, license monitoring, and health probes.

The Provider Status page has been retired

/providers is now a 302 redirect to /credentials. Provider activation is visible directly in the credentials list — every entry shows which provider it serves and which scope (platform-default or workspace-scoped) it covers, and the resolution source (database / vault / environment) is documented in Credentials & BYOK. The previous per-provider resolution-source view has been removed.


Personal access tokens​

Open the user menu (top-right corner) and select Access Tokens to manage personal access tokens (PATs) for API automation.

PATs use the dvara_pat_ prefix followed by a random identifier. The raw token is displayed exactly once at creation — copy it immediately, as it cannot be retrieved again. Only a SHA-256 hash is stored.

Creating a token​

Click Create Token, provide a name and optional expiry date. Scopes are set automatically from your current roles. The new token appears in a one-time alert with a Copy button.

Token table​

ColumnDescription
NameHuman-readable label
PrefixFirst 20 characters of the token (dvara_pat_ab...)
CreatedCreation timestamp
Last UsedLast authentication timestamp, or "Never"
ExpiresExpiry date, or "Never"
StatusActive, Expired, or Revoked

Revoking a token​

Click Revoke next to any active token. Revocation is permanent — revoked tokens cannot be reactivated. You can only see and revoke your own tokens.

Usage​

A PAT authenticates a script to the DVARA Flightdeck as the user who minted it, carrying that user's roles. It is not valid on the data plane — that uses a workspace gw_ API key.

There is no admin REST API to point a token at

There is no administrative REST API to point a PAT at: /v1/admin/** was removed in 1.7.0. See GitOps export and import for the supported bulk-configuration workflow.

PATs work across both Flightdeck role scopes. Every create and revoke emits a PAT_CREATED / PAT_REVOKED audit event.

Personal access tokens settings page with the create form expanded and a list of any issued tokens with revoke controlsPersonal access tokens settings page with the create form expanded and a list of any issued tokens with revoke controls
Figure 1. Creating a PAT. The plaintext token is shown ONCE at create-time inside a one-time-reveal panel — copy it immediately. The list below shows the prefix + creation date for already-issued tokens; the full secret is never recoverable through the UI.

Guardrail plugin management​

Navigate to /guardrail-plugins in your browser. This page manages external guardrail plugin definitions — the webhook endpoints that run alongside built-in detectors in the composite guardrail chain.

RBAC: Requires owner or policy-admin role. Secret rotation requires owner.

Plugin list​

The table shows all platform-global and workspace-scoped plugins with:

ColumnDescription
NamePlugin identifier
ScopePlatform badge (global) or workspace ID
URLWebhook endpoint
TimeoutHTTP timeout in milliseconds
Fail ModeOPEN (return empty on failure) or CLOSED (throw exception on failure)
StatusEnabled or Disabled
UpdatedLast modification timestamp

The table auto-refreshes every 10 seconds. Use the Workspace dropdown to filter by scope.

Guardrail plugins list page showing a seeded internal-jailbreak-classifier with scope, URL, timeout, fail mode, and status columnsGuardrail plugins list page showing a seeded internal-jailbreak-classifier with scope, URL, timeout, fail mode, and status columns
Figure 2. Guardrail plugins list — every plugin definition (platform-global and workspace-scoped) appears here with its scope, target URL, timeout, fail mode (OPEN / CLOSED), and enabled status. Secret rotation is owner-only; the secret itself is never shown — only the encrypted blob is stored, AES-256-GCM-decrypted in-process on every call.

Creating a plugin​

Click New Plugin and provide:

  • Name — unique identifier
  • URL — webhook endpoint
  • HMAC Secret — signing secret for request authentication (encrypted with AES-256-GCM before storage)
  • Timeout (ms) — HTTP call timeout (default 5000)
  • Fail Mode — OPEN or CLOSED
  • Workspace — leave blank for platform-global, or select a workspace for workspace-scoped
Requires the encryption master password

DVARA_ENCRYPTION_MASTER_PASSWORD must be set for secret encryption. The form shows an error if it is not configured.

Rotating a secret​

Click Rotate to replace the HMAC signing secret. The old secret is permanently replaced and the change takes effect across all pods on their next config-version poll (a few seconds).

Audit events​

Every mutation emits a GUARDRAIL_PLUGIN_CREATED, GUARDRAIL_PLUGIN_UPDATED, GUARDRAIL_PLUGIN_ROTATED, or GUARDRAIL_PLUGIN_DELETED audit event.

For fleet-wide configuration transfer, see GitOps export and import. For guardrail plugin concepts, see ML & Plugin Guardrails.


License status​

This is the runtime view. To request, apply, or renew a license, see Get and apply a license.

Open the user menu in the top-right and click License to open the license page (also reachable directly at /license). Only the owner role can set or replace the licence here.

The top of the page shows where the install stands: no licence, a valid licence with its licensee and expiry date, or an expired licence. Without a valid licence it also shows the workspace count against 3. With no licence at all it shows this month's governed calls against 100,000. From 1.8.6, with a valid licence, it shows this month's governed calls with no limit, and links to the monthly usage report.

With a licence stored, the page shows its details and runtime status:

  • Licensee — name of the license holder
  • License type — TRIAL or PRODUCTION
  • Expiry date — license expiration with days remaining
  • Runtime status badge — color-coded:
    • VALID (green) — more than 30 days remaining
    • EXPIRING_SOON (yellow) — ≤ 30 days remaining
    • GRACE_PERIOD (orange) — expired, within 14-day grace period
    • DEGRADED (red) — expired beyond the 14-day grace period
  • Renewal instructions — displayed when the license is expiring or expired
License status page with licensee details and runtime status badgeLicense status page with licensee details and runtime status badge
Figure 3. License status page with licensee details and runtime status badge

Flightdeck reads the licence from its own store, not from a Gateway, so the page works while a Gateway is unreachable. Saving a licence here takes effect in Flightdeck at once and on each Gateway pod with its next configuration bundle. No restart is needed. The Gateway reports the same state on its /actuator/license endpoint, which requires Authorization: Bearer $DVARA_ACTUATOR_API_KEY. The Open Source distribution does not expose this endpoint.

Flightdeck also shows the licence state on every page:

  • Without a licence, a bar reads "Non-production licence". For platform roles it also shows the workspace count against 3 and this month's calls against 100,000, with a link to get a licence.
  • Before expiry, owners see "Licence expires in N days" in Flightdeck from 30 days out.
  • After expiry (from 1.8.3), every signed-in user sees a banner with the expiry date that says traffic is not affected.

What DEGRADED blocks: no traffic. From 1.8.2, /v1/*, /mcp/* and /a2a/* all keep serving after the grace period. An expired licence counts governed calls but never refuses one, keeps your existing workspaces, and refuses a new workspace above 3. From 1.8.3, compliance reports generated after the grace carry "Expired licence" in the footer. Until 1.8.2, DEGRADED refused /mcp/* and /a2a/* with 402 LICENSE_EXPIRED.

posture and license.status are different fields

Read posture and status from /actuator/license. posture is DEVELOPMENT with no licence and PRODUCTION with one, valid or expired. status reports current licence health. Both follow the stored licence while the Gateway runs. A Gateway whose licence passed its grace therefore reports posture: PRODUCTION and status: DEGRADED, and serves every plane.

Health probes​

The DVARA Flightdeck exposes health endpoints designed for Kubernetes probes:

EndpointPurpose
GET /actuator/health/livenessKubernetes liveness probe
GET /actuator/health/readinessKubernetes readiness probe (application state and database connectivity)

The readiness probe checks Flightdeck's application state and database connectivity. It does not include the Gateway connection. A disconnected Gateway appears in Flightdeck's System Status and live operational panels while Flightdeck remains ready for control-plane work.

See Check System Status and recover from errors for Gateway and provider states, correlation IDs, safe support evidence, and deployment-specific recovery steps.

The Helm chart wires these up automatically:

livenessProbe:
httpGet:
path: /actuator/health/liveness
port: http
readinessProbe:
httpGet:
path: /actuator/health/readiness
port: http
startupProbe:
httpGet:
path: /actuator/health/liveness
port: http

Audit event stream​

The sidebar's Governance → Audit page (documented in more detail under Governance) is the third operational surface. It exposes every append-only event written to the audit chain — policy decisions, authentication events, config imports, license transitions, and more — with a live-polling table (3-second refresh), click-to-expand event detail, and CSV / JSON exports (/audit/export, CSV by default and JSON with ?format=json). An export needs approval from a second authorized user before the original requester can download it.

From 1.8.4 a From or To date the page cannot read, such as not-a-date or 08/17/2026, is refused on that field. The message stays under the field, and the table lists nothing and says why, including on its 3-second refresh. Before 1.8.4 the page dropped the date and listed every row. The audit export already refused an unreadable date with a 400.

Audit Log with workspace and event filters, a real policy denial, a successful governed request, and a PII redaction eventAudit Log with workspace and event filters, a real policy denial, a successful governed request, and a PII redaction event
Figure 4. Seeded traffic produces real governance evidence: a denied legacy-model request and a prompt redacted for PII.