|
3 | 3 | # GitHub applies LAST MATCH WINS — only the final matching pattern's owners are |
4 | 4 | # requested. Order therefore matters: the catch-all is first and the narrow |
5 | 5 | # 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. |
7 | 7 | # |
8 | 8 | # A caveat worth stating in the file itself, because the process document implies |
9 | 9 | # otherwise: CODEOWNERS cannot require a DIFFERENT NUMBER of approvals for |
|
12 | 12 | # vault, auth and SQL-execution paths is therefore a reviewer convention here, |
13 | 13 | # not a machine-enforced gate — see the note in SECURITY.md. |
14 | 14 | # |
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. |
17 | 20 |
|
18 | 21 | * @DeepSQLAI/maintainers |
19 | 22 |
|
|
34 | 37 | # Renaming anything here silently breaks every operator's .env on upgrade. |
35 | 38 | /.env.example @DeepSQLAI/maintainers |
36 | 39 |
|
37 | | -# ── Security-critical: convention is two maintainer approvals ─────────────── |
| 40 | +# ── Security-critical: convention is two security-reviewer approvals ─────── |
38 | 41 | # Credential vault, encryption key handling, authentication and JWT. The vault |
39 | 42 | # 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 |
42 | 45 |
|
43 | 46 | # Read-only SQL execution enforcement. This is the guardrail standing between a |
44 | 47 | # 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 |
53 | 56 |
|
54 | 57 | # 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 |
56 | 59 |
|
57 | 60 | # The dashboard sandbox and its read-only query bridge. The public controller is |
58 | 61 | # 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 |
62 | 65 |
|
63 | 66 | # The MCP tool surface and its authorisation: an agent-facing remote surface. |
64 | | -/mcp/ @DeepSQLAI/security |
| 67 | +/mcp/ @geekypunk @venkateshsakamuri-lab |
0 commit comments