Skip to content

Historical pre-upgrade audit record: runtime, security, CI, deployment, and evidence gaps #7

Description

@CoreyLeath-code

Historical record: This issue documents problems recorded before the repository's audit/upgrade work. Checked items mean a merged PR reports the item remediated; they are not a substitute for re-validating the current default branch. The scope is the evidence in linked commits and PRs—not a claim that every historical defect has been discovered.

Baseline and remediation timeline

Earliest documented pre-upgrade baseline: d5f059c.

Repository and deployment

  • No coherent local run path; README referenced nonexistent directories.
  • CI workflow filename was malformed.
  • Compose was incomplete and lacked a valid top-level service stack.
  • Most services had no Dockerfiles, health checks, dependency ordering, or local database schema.
  • Render configuration was a stub.
  • Docker build context lacked a .dockerignore, risking inclusion of VCS data, environment files, Terraform state, and unrelated artifacts.

Remediated in PR #1 and PR #4.

Correctness, security, and runtime

  • API modules imported a nonexistent core.* namespace.
  • Tests imported the wrong application and failed during collection.
  • Authentication used literal admin/admin credentials.
  • Backend forced CUDA and could crash on CPU-only hosts.
  • MLflow work and heavyweight model loading occurred at import/startup.
  • An LLM route loaded synchronously and lacked a safe CPU/error path.
  • Database-write exceptions were silently swallowed.
  • Required API/test dependencies were absent, and importing the API required PyTorch.

Remediated in PR #2 and PR #3.

CI and research evidence

  • Pytest invocation depended on a user-local binary being on PATH.
  • README badges referenced the former repository owner.
  • README mixed targets and one-off smoke measurements with insufficient claim boundaries.
  • No deterministic, versioned PSI/KS benchmark artifact or enforced quality/schema regression gate existed.
  • Benchmark reporting omitted a consolidated latency distribution, throughput, memory, classification metrics, provenance, and limitations.

Remediated in PR #4, PR #5, and PR #6.

Follow-up verification

  • Re-run the full polyglot stack and CI on current main.
  • Confirm secrets/templates remain excluded from images.
  • Confirm current badges and benchmark links use CoreyLeath-code/SentinelAI.
  • Reassess the still-limited focused API coverage recorded during the documentation audit.

Remediation record — August 2026

Problem

The inference API treated a missing API_BEARER_TOKEN as authorization success, leaving the production-like endpoint open when configuration was incomplete.

Upgrade

PR #15 makes production authorization fail closed when the bearer-token configuration is missing and adds regression coverage for the production and development paths.

Verification

The PR-head GitHub Actions checks passed across the configured workflow set.

Remaining boundary

This closes the missing-token bypass; it does not replace broader identity, secret-rotation, rate-limit, or deployment-authorization controls.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions