new: drive vas from your AI agent over MCP · Cursor, Claude Code, Windsurf
Cody
+
PostgreSQL

Sourcegraph Cody + PostgreSQL Security

Cody's deep codebase search means it generates PostgreSQL code that matches your existing patterns — including any insecure patterns already in your codebase. Establish secure patterns before leaning on Cody for database features.

Why Cody + PostgreSQL?

Cody is used by enterprise development teams that already have PostgreSQL infrastructure. Its codebase-aware suggestions make it natural for extending existing database functionality — which means it can amplify both good and bad security patterns already present.

Common Vulnerabilities

These are the security issues we find most often in Cody apps using PostgreSQL.

critical

Pattern Amplification from Existing Code

Cody's codebase search generates suggestions consistent with your existing patterns. If your codebase has any unsafe SQL concatenation, Cody will suggest the same pattern in new code — spreading the vulnerability throughout the application.

critical

Credential Pattern Replication

If any existing file contains a hardcoded database URL or credential, Cody may replicate this pattern when generating new database connection code elsewhere in the project.

high

Missing RLS Awareness

Cody can understand your schema from codebase context but does not proactively recommend or generate RLS policies unless the existing codebase already uses them.

high

Complex Query Injection Risk

Cody excels at generating complex multi-join queries and dynamic filters. Complex queries are harder to parameterize correctly and more likely to have injection vectors in edge cases.

What We Check for Cody + PostgreSQL

Codebase Pattern Audit

Search the codebase for any existing SQL concatenation patterns that Cody may have replicated or will replicate in future suggestions.

Connection String Search

Scan the entire repository for hardcoded PostgreSQL connection strings or passwords that Cody's context may have learned and could replicate.

Dynamic Query Parameterization

Review complex multi-condition queries for correct parameterization, paying attention to dynamically constructed WHERE clauses.

RLS Baseline Check

Verify whether RLS is enabled on user-data tables — if not, establish the pattern so Cody's future suggestions include it.

Quick Security Wins

Apply these fixes right now to improve your security.

Fix any existing SQL concatenation in the codebase first — Cody will stop suggesting the unsafe pattern once it's gone
Move hardcoded database credentials to environment variables before using Cody for new database features
Add an RLS example to your schema files so Cody learns to include it in future table suggestions
Use parameterized query wrappers or an ORM as your established pattern for Cody to follow
Ask Cody to 'find all SQL queries using string concatenation' — it can search your codebase for the vulnerability

The Bottom Line

Cody's codebase awareness is a double-edged sword for PostgreSQL security: it follows your established patterns faithfully, good or bad. Clean up existing insecure patterns first, then Cody's suggestions will reflect those improvements throughout new code.

Secure Your Cody + PostgreSQL App

Find Row Level Security misconfigurations, exposed credentials, and other vulnerabilities before attackers do.

Start Security Scan

Frequently Asked Questions

Why does Cody keep suggesting the same unsafe SQL pattern?

Cody uses your codebase as context for suggestions. If any file in the repository uses string concatenation to build queries, Cody treats this as the established pattern and replicates it. Fix the existing occurrences first — use a global search for raw string SQL building — then Cody's suggestions will change.

Can Cody help me find SQL injection vulnerabilities in my codebase?

Yes, this is one of Cody's strengths. Ask it to 'find all PostgreSQL queries that use string interpolation or concatenation instead of parameterized placeholders'. Cody can search your codebase and identify the problematic patterns. Use this to create a fix list, then apply the fixes systematically.

How do I establish a secure PostgreSQL pattern for Cody to follow?

Write a well-documented database utility module with parameterized query wrappers and commit it. Include inline comments explaining the security reasoning. Cody reads both code and comments for context, so explicitly noting 'always use $1 placeholders for user input' in a comment helps Cody generate consistent suggestions.

Does Cody understand PostgreSQL RLS when suggesting schema changes?

Cody understands RLS if it's already in your codebase. If your migration files include ENABLE ROW LEVEL SECURITY and CREATE POLICY statements, Cody will include them in new migration suggestions. If they're absent, Cody won't add them proactively. Establish the pattern with a single example and Cody will follow it.