Doctor Plugins Reference

Audience: operators and support engineers running Stella Ops self-diagnostics.

Doctor is Stella Ops’ built-in health-check engine. Its checks ship as plugins, each owning a focused area — database, storage, crypto compliance, timestamping, evidence integrity, and more. This reference lists every plugin, the checks it contributes, their severities and thresholds, the evidence each check collects, and the configuration knobs that govern them.

For the field-by-field definition of the evidence each check emits, see the Doctor Check Evidence Schemas.

Plugin overview

PluginDirectoryChecksDescription
PostgresStellaOps.Doctor.Plugin.Postgres3PostgreSQL database health
StorageStellaOps.Doctor.Plugin.Storage3Disk and storage health
CryptoStellaOps.Doctor.Plugin.Crypto4Regional crypto compliance
TimestampingStellaOps.Doctor.Plugin.Timestamping22RFC-3161 and eIDAS timestamp health
EvidenceLockerStellaOps.Doctor.Plugin.EvidenceLocker4Evidence integrity checks
AttestorStellaOps.Doctor.Plugin.Attestor3+Signing and verification
AuthStellaOps.Doctor.Plugin.Auth3+Authentication health
PolicyStellaOps.Doctor.Plugin.Policy3+Policy engine health
VexStellaOps.Doctor.Plugin.Vex3+VEX feed health
OperationsStellaOps.Doctor.Plugin.Operations3+General operations

PostgreSQL Plugin

Plugin ID: stellaops.doctor.postgres
NuGet: StellaOps.Doctor.Plugin.Postgres

Checks

check.postgres.connectivity

Verifies PostgreSQL database connectivity and response time.

FieldValue
SeverityFail
Tagsdatabase, postgres, connectivity, core
Timeout10 seconds

Thresholds:

Evidence collected:

Remediation:

# Check database status
stella db status

# Test connection
stella db ping

# View connection configuration
stella config get Database:ConnectionString

check.postgres.migration-status

Checks for pending database migrations.

FieldValue
SeverityWarning
Tagsdatabase, postgres, migrations

Evidence collected:

Remediation:

# View migration status
stella db migrations status

# Apply pending migrations
stella db migrations run

# Verify migration state
stella db migrations verify

check.postgres.connection-pool

Monitors connection pool health and utilization.

FieldValue
SeverityWarning
Tagsdatabase, postgres, pool, performance

Thresholds:

Evidence collected:

Remediation:

# View pool statistics
stella db pool stats

# Increase pool size (if needed)
stella config set Database:MaxPoolSize 50

Storage Plugin

Plugin ID: stellaops.doctor.storage
NuGet: StellaOps.Doctor.Plugin.Storage

Checks

check.storage.disk-space

Checks available disk space on configured storage paths.

FieldValue
SeverityFail
Tagsstorage, disk, capacity

Thresholds:

Evidence collected:

Remediation:

# List large files
stella storage analyze --path /var/stella

# Clean up old evidence
stella evidence cleanup --older-than 90d

# View storage summary
stella storage summary

check.storage.evidence-locker-write

Verifies write permissions to the evidence locker directory.

FieldValue
SeverityFail
Tagsstorage, evidence, permissions

Evidence collected:

Remediation:

# Check permissions
stella evidence locker status

# Repair permissions
stella evidence locker repair --permissions

# Verify configuration
stella config get EvidenceLocker:BasePath

check.storage.backup-directory

Verifies backup directory accessibility (skipped if not configured).

FieldValue
SeverityWarning
Tagsstorage, backup

Evidence collected:


Crypto Plugin

Plugin ID: stellaops.doctor.crypto
NuGet: StellaOps.Doctor.Plugin.Crypto

Checks

check.crypto.fips-compliance

Verifies FIPS 140-2/140-3 compliance for US government deployments.

FieldValue
SeverityFail (when FIPS profile active)
Tagscrypto, compliance, fips, regional

Evidence collected:

Remediation:

# Check current profile
stella crypto profile show

# Enable FIPS mode
stella crypto profile set fips

# Verify FIPS compliance
stella crypto verify --standard fips

check.crypto.eidas-compliance

Verifies eIDAS compliance for EU deployments.

FieldValue
SeverityFail (when eIDAS profile active)
Tagscrypto, compliance, eidas, regional, eu

Evidence collected:

Remediation:

# Enable eIDAS profile
stella crypto profile set eidas

# Verify compliance
stella crypto verify --standard eidas

check.crypto.gost-availability

Verifies GOST algorithm availability for Russian deployments.

FieldValue
SeverityFail (when GOST profile active)
Tagscrypto, compliance, gost, regional, russia

Evidence collected:

check.crypto.sm-availability

Verifies SM2/SM3/SM4 algorithm availability for Chinese deployments.

FieldValue
SeverityFail (when SM profile active)
Tagscrypto, compliance, sm, regional, china

Evidence collected:


Timestamping Plugin

Plugin ID: stellaops.doctor.timestamping
NuGet: StellaOps.Doctor.Plugin.Timestamping

Checks

Configuration

Doctor:
  Timestamping:
    TsaEndpoints:
      - name: PrimaryTsa
        url: https://tsa.example.org
      - name: BackupTsa
        url: https://tsa-backup.example.org
    WarnLatencyMs: 5000
    CriticalLatencyMs: 30000
    MinHealthyTsas: 2
  Evidence:
    DeprecatedAlgorithms:
      - SHA1

Note: evidence staleness, OCSP stapling, and chain validation checks require data providers to be registered by the host.


Evidence Locker Plugin

Plugin ID: stellaops.doctor.evidencelocker
NuGet: StellaOps.Doctor.Plugin.EvidenceLocker

Checks

check.evidencelocker.retrieval

Verifies attestation retrieval functionality through the configured Evidence Locker endpoint or, when Doctor is filesystem-adjacent, by reading a local attestation artifact under EvidenceLocker:Path.

FieldValue
SeverityFail
Tagsevidence, attestation, retrieval

Evidence collected:

Remediation:

# Check evidence locker status
stella evidence locker status

# Verify index integrity
stella evidence index verify

# Rebuild index if needed
stella evidence index rebuild

check.evidencelocker.provenance

Verifies provenance chain integrity. Empty deployments skip honestly until provenance records exist; they do not pass as verified.

FieldValue
SeverityFail
Tagsevidence, provenance, integrity

Evidence collected:

check.evidencelocker.index

Verifies evidence index health and consistency.

FieldValue
SeverityWarning
Tagsevidence, index, consistency

Evidence collected:

check.evidencelocker.merkle

Verifies Merkle tree anchoring when configured. The check recomputes the Merkle root from leafHashes / leaves; field-presence-only anchor records fail as not verifiable.

FieldValue
SeverityFail
Tagsevidence, merkle, anchoring

Evidence collected:


Configuration

Enabling/Disabling Plugins

In appsettings.yaml:

Doctor:
  Plugins:
    Postgres:
      Enabled: true
    Storage:
      Enabled: true
    Crypto:
      Enabled: true
      ActiveProfile: international  # fips, eidas, gost, sm
    EvidenceLocker:
      Enabled: true

Check-Level Configuration

Doctor:
  Checks:
    "check.storage.disk-space":
      WarningThreshold: 75  # Override default 80%
      CriticalThreshold: 85  # Override default 90%
    "check.postgres.connectivity":
      TimeoutSeconds: 15  # Override default 10

Report Storage Configuration

Doctor:
  ReportStorage:
    Backend: postgres  # inmemory, postgres, filesystem
    RetentionDays: 90
    CompressionEnabled: true

Running Checks

CLI

# Run all checks
stella doctor

# Run specific plugin
stella doctor --plugin postgres

# Run specific check
stella doctor --check check.postgres.connectivity

# Output formats
stella doctor --format table   # Default
stella doctor --format json
stella doctor --format markdown

API

# Run all checks
curl -X POST /api/v1/doctor/run

# Run with filters
curl -X POST /api/v1/doctor/run \
  -H "Content-Type: application/json" \
  -d '{"plugins": ["postgres", "storage"]}'

Last updated: 2026-01-20 (UTC).