fix(permissions): require approval for backend queries
This commit is contained in:
@@ -6,7 +6,6 @@ const lowRiskToolPermissions = new Set([
|
|||||||
"locate_features",
|
"locate_features",
|
||||||
"render_junctions",
|
"render_junctions",
|
||||||
"show_chart",
|
"show_chart",
|
||||||
"tjwater_server_query",
|
|
||||||
"view_history",
|
"view_history",
|
||||||
"view_scada",
|
"view_scada",
|
||||||
"web_search",
|
"web_search",
|
||||||
|
|||||||
@@ -9,13 +9,18 @@ describe("permission approval policy", () => {
|
|||||||
it.each([
|
it.each([
|
||||||
"show_chart",
|
"show_chart",
|
||||||
"web_search",
|
"web_search",
|
||||||
"tjwater_server_query",
|
|
||||||
"tjwater_tjwater_server_query",
|
|
||||||
])("allows low-risk permission %s", (permission) => {
|
])("allows low-risk permission %s", (permission) => {
|
||||||
expect(canAutoApprovePermission(permission)).toBe(true);
|
expect(canAutoApprovePermission(permission)).toBe(true);
|
||||||
});
|
});
|
||||||
|
|
||||||
it.each(["bash", "edit", "external_directory", "store_render_ref"])(
|
it.each([
|
||||||
|
"bash",
|
||||||
|
"edit",
|
||||||
|
"external_directory",
|
||||||
|
"store_render_ref",
|
||||||
|
"tjwater_server_query",
|
||||||
|
"tjwater_tjwater_server_query",
|
||||||
|
])(
|
||||||
"requires confirmation for permission %s",
|
"requires confirmation for permission %s",
|
||||||
(permission) => {
|
(permission) => {
|
||||||
expect(canAutoApprovePermission(permission)).toBe(false);
|
expect(canAutoApprovePermission(permission)).toBe(false);
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ describe("streamPromptResponse", () => {
|
|||||||
properties: {
|
properties: {
|
||||||
id: "perm-1",
|
id: "perm-1",
|
||||||
sessionID: "runtime-session-1",
|
sessionID: "runtime-session-1",
|
||||||
permission: "tjwater_tjwater_server_query",
|
permission: "show_chart",
|
||||||
patterns: ["*"],
|
patterns: ["*"],
|
||||||
metadata: {},
|
metadata: {},
|
||||||
always: ["*"],
|
always: ["*"],
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ describe("internal OpenCode permissions", () => {
|
|||||||
|
|
||||||
expect(permission["*"]).toBe("ask");
|
expect(permission["*"]).toBe("ask");
|
||||||
expect(permission.external_directory).toBe("deny");
|
expect(permission.external_directory).toBe("deny");
|
||||||
|
expect(permission.task).toBe("deny");
|
||||||
expect(permission.question).toBe("allow");
|
expect(permission.question).toBe("allow");
|
||||||
expect(permission.todowrite).toBe("allow");
|
expect(permission.todowrite).toBe("allow");
|
||||||
expect(read?.["*"]).toBe("allow");
|
expect(read?.["*"]).toBe("allow");
|
||||||
|
|||||||
Reference in New Issue
Block a user