Skip to content

Commit 4d0c523

Browse files
Route security-critical paths to named reviewers (#41)
Replace @DeepSQLAI/security with @geekypunk and @venkateshsakamuri-lab on the vault, auth, SQL-execution, SSH tunnel, dashboard and MCP paths, so review on those paths is independent of the maintainer roster. Comment block updated to match; maintainer-owned paths unchanged.
1 parent 57eb925 commit 4d0c523

1 file changed

Lines changed: 22 additions & 19 deletions

File tree

.github/CODEOWNERS

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
# GitHub applies LAST MATCH WINS — only the final matching pattern's owners are
44
# requested. Order therefore matters: the catch-all is first and the narrow
55
# security paths are last, so a change under backend/.../security/ is routed to
6-
# @DeepSQLAI/security and not merely to the maintainers.
6+
# the two named security reviewers and not merely to the maintainers.
77
#
88
# A caveat worth stating in the file itself, because the process document implies
99
# otherwise: CODEOWNERS cannot require a DIFFERENT NUMBER of approvals for
@@ -12,8 +12,11 @@
1212
# vault, auth and SQL-execution paths is therefore a reviewer convention here,
1313
# not a machine-enforced gate — see the note in SECURITY.md.
1414
#
15-
# Teams, not usernames, on purpose: a permissions change is then one edit to the
16-
# team roster rather than a sweep across this file.
15+
# Teams for the broad surface, named individuals for the security paths. The
16+
# catch-all stays on @DeepSQLAI/maintainers, so a roster change there is one edit
17+
# to the team. The security paths name @geekypunk and @venkateshsakamuri-lab
18+
# directly, so that review on them does not widen automatically with the
19+
# maintainer roster; keep those lines in sync by hand.
1720

1821
* @DeepSQLAI/maintainers
1922

@@ -34,31 +37,31 @@
3437
# Renaming anything here silently breaks every operator's .env on upgrade.
3538
/.env.example @DeepSQLAI/maintainers
3639

37-
# ── Security-critical: convention is two maintainer approvals ───────────────
40+
# ── Security-critical: convention is two security-reviewer approvals ───────
3841
# Credential vault, encryption key handling, authentication and JWT. The vault
3942
# holds an AES-GCM key whose loss is unrecoverable.
40-
/backend/src/main/java/com/dbaagent/security/ @DeepSQLAI/security
41-
/backend/src/main/java/com/dbaagent/service/security/ @DeepSQLAI/security
43+
/backend/src/main/java/com/dbaagent/security/ @geekypunk @venkateshsakamuri-lab
44+
/backend/src/main/java/com/dbaagent/service/security/ @geekypunk @venkateshsakamuri-lab
4245

4346
# Read-only SQL execution enforcement. This is the guardrail standing between a
4447
# generated statement and a customer's production database.
45-
/backend/src/main/java/com/dbaagent/service/McpSqlGuardService.java @DeepSQLAI/security
46-
/backend/src/main/java/com/dbaagent/service/QueryExecutionContext.java @DeepSQLAI/security
47-
/backend/src/main/java/com/dbaagent/service/QueryExecutionPolicyService.java @DeepSQLAI/security
48-
/backend/src/main/java/com/dbaagent/service/QueryExecutionPolicyException.java @DeepSQLAI/security
49-
/backend/src/main/java/com/dbaagent/model/McpReadOnlyQueryRequest.java @DeepSQLAI/security
50-
/backend/src/main/java/com/dbaagent/model/McpReadOnlyExplainRequest.java @DeepSQLAI/security
51-
/backend/src/main/java/com/dbaagent/model/QueryExecutionOrigin.java @DeepSQLAI/security
52-
/backend/src/main/java/com/dbaagent/provider/api/QueryExecutionProvider.java @DeepSQLAI/security
48+
/backend/src/main/java/com/dbaagent/service/McpSqlGuardService.java @geekypunk @venkateshsakamuri-lab
49+
/backend/src/main/java/com/dbaagent/service/QueryExecutionContext.java @geekypunk @venkateshsakamuri-lab
50+
/backend/src/main/java/com/dbaagent/service/QueryExecutionPolicyService.java @geekypunk @venkateshsakamuri-lab
51+
/backend/src/main/java/com/dbaagent/service/QueryExecutionPolicyException.java @geekypunk @venkateshsakamuri-lab
52+
/backend/src/main/java/com/dbaagent/model/McpReadOnlyQueryRequest.java @geekypunk @venkateshsakamuri-lab
53+
/backend/src/main/java/com/dbaagent/model/McpReadOnlyExplainRequest.java @geekypunk @venkateshsakamuri-lab
54+
/backend/src/main/java/com/dbaagent/model/QueryExecutionOrigin.java @geekypunk @venkateshsakamuri-lab
55+
/backend/src/main/java/com/dbaagent/provider/api/QueryExecutionProvider.java @geekypunk @venkateshsakamuri-lab
5356

5457
# SSH tunnelling: reaches into networks the operator has not otherwise exposed.
55-
/backend/src/main/java/com/dbaagent/service/SshTunnelService.java @DeepSQLAI/security
58+
/backend/src/main/java/com/dbaagent/service/SshTunnelService.java @geekypunk @venkateshsakamuri-lab
5659

5760
# The dashboard sandbox and its read-only query bridge. The public controller is
5861
# reachable unauthenticated for as long as a dashboard is shared.
59-
/backend/src/main/java/com/dbaagent/controller/DashboardQueryController.java @DeepSQLAI/security
60-
/backend/src/main/java/com/dbaagent/controller/PublicDashboardController.java @DeepSQLAI/security
61-
/src/components/DashboardArtifact.jsx @DeepSQLAI/security
62+
/backend/src/main/java/com/dbaagent/controller/DashboardQueryController.java @geekypunk @venkateshsakamuri-lab
63+
/backend/src/main/java/com/dbaagent/controller/PublicDashboardController.java @geekypunk @venkateshsakamuri-lab
64+
/src/components/DashboardArtifact.jsx @geekypunk @venkateshsakamuri-lab
6265

6366
# The MCP tool surface and its authorisation: an agent-facing remote surface.
64-
/mcp/ @DeepSQLAI/security
67+
/mcp/ @geekypunk @venkateshsakamuri-lab

0 commit comments

Comments
 (0)