Source code Releases Stability Security & compliance Code quality Cost

Production readiness

The DevOps gaps that turn a normal deploy into an incident.

Overview

A 12-factor read of your configuration, startup, and deploy path: where config lives, what happens on SIGTERM, whether migrations can take the app down, and which public endpoints have no rate limit in front of them.

What it looks for

  • Config and credentials hardcoded instead of read from the environment
  • No SIGTERM handling or graceful shutdown
  • Migrations running inside server start, and destructive migrations with no compatibility shim
  • Public POST endpoints with no rate limit
  • Permissive CORS with credentials enabled
  • Debug mode in production config, missing .env.example, no CI gate on main

Why it matters

Running migrations in the same step as server start means a failed migration takes the fleet with it. No graceful shutdown means every deploy drops in-flight requests, and permissive CORS with credentials hands your session cookies to any origin that asks.

Rules in this check

How the fixes arrive

Pull requestLow-risk changes arrive as a pull request on a lumioguard branch, with a breakage analysis attached. You review and merge it.
GuideChanges only you can make safely arrive as a step-by-step guide you can follow yourself or hand to your coding agent.

Run them all on your app

Connect your repo and your live services with read-only scopes. The first scan is free, and nothing changes without your approval.