Skip to main content

License & Operations

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 tenant-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

curl -H "Authorization: Bearer dvara_pat_..." http://localhost:8090/v1/admin/tenants

PATs work for both the platform Console and the tenant portal. 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 4. 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 tenant-scoped plugins with:

ColumnDescription
NamePlugin identifier
ScopePlatform badge (global) or tenant 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 Tenant dropdown to filter by scope.

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 ModeOPEN or CLOSED
  • Tenant — leave blank for platform-global, or select a tenant for tenant-scoped
note

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 immediately across all pods via PostgreSQL NOTIFY.

Audit events

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

For the Automation API counterpart, see the Admin API reference. For guardrail plugin concepts, see ML & Plugin Guardrails.


License status

Open the user menu in the top-right and click License to open the license-status page (also reachable directly at /license).

Shows license details and runtime status:

  • Licensee — name of the license holder
  • License typeTRIAL 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 2. License status page with licensee details and runtime status badge

Data is read from the LLM Gateway's /actuator/gateway-status endpoint, which requires Authorization: Bearer $DVARA_ACTUATOR_API_KEY. Set the same secret on the DVARA Flightdeck (via DVARA_ACTUATOR_API_KEY) and on the LLM Gateway so the Flightdeck's License page can authenticate. When the license is in DEGRADED state, the data plane rejects /v1/* requests with HTTP 402 / type: license_error / code: LICENSE_EXPIRED; the DVARA Flightdeck stays up so you can still diagnose and renew.

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 (includes a controlPlane health check)

The readiness probe checks database connectivity and the LLM Gateway connection. The DVARA Flightdeck operates independently of the LLM Gateway — admin operations continue even if the LLM Gateway is down, but readiness returns OUT_OF_SERVICE until both come back.

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 via /v1/admin/audit/events/export.

Audit events table with filters and live polling refreshAudit events table with filters and live polling refresh
Figure 3. Audit events table with filters and live polling refresh