Request demo
V Valk
Coming Soon

Valk Guard

Pre-merge database linter + enforcer + safety net.

Open Source Fully Customizable

Detects risky patterns, stops dangerous migrations, and gives helpful feedback before you merge code.

It Parses Code and Migrations

Valk Guard analyzes your codebase using static analysis, meaning it doesn’t need to run your app or connect to a live DB.

For .sql files (e.g. migrations)

Uses an internal SQL parser (ANTLR-based) to detect destructive or locking changes.

  • DROP COLUMN → Block
  • ⚠️ CREATE INDEX without CONCURRENTLY → Warn
  • Type changes or big ALTER TABLE → Flag

For ORM Code (e.g. GORM, SQLAlchemy)

Traverses source code using language-specific ASTs to catch risky patterns.

  • db.Delete(&User{}) → Global delete
  • ⚠️ db.Find(&users) without Where() → Full table scan
migration.sql
-- Migration: 20240115_drop_email
ALTER TABLE
users
DROP COLUMN email;
Valk Guard Error
Destructive change detected: DROP COLUMN causes immediate data loss. This is blocked by 'no-destructive-schema' rule.

It Applies Deterministic Rules

Each issue it detects is checked against a rule set defined in .valk.yaml. No AI guesswork.

BLOCK

Fails the CI job instantly. Used for destructive changes or critical performance risks.

WARN

Posts a comment on the PR but lets the build pass. Good for style checks or minor risks.

IGNORE

Skips the check entirely for specific files or lines. Configurable in YAML.

It Integrates Into CI/CD

Run Valk Guard as a CLI tool locally, a GitHub Action, or a step in GitLab CI / CircleCI.

GitHub Integration

Valk scans changed files in PRs, producing inline comments or blocking failures.

Bridges to Simulation

When Valk finds something ambiguous — like a complex query — it provides a "Run Simulation" link.

Simulation Power

Send the query to Valk’s cloud service to get deterministic cost estimation and understand why the issue matters.

Opt-in via API Token

It Never Sends Data Unless You Want It To

By default, Valk Guard runs entirely locally or in your CI, without sending any code, schema, or data outside your environment. Simulation is opt-in only.

Zero Trust Architecture