Make changing engine-run code superuser-only

Writing node source, installing modules and any flow save that adds,
retypes or repoints a code node (Function, Command), edits a Command
node's settings or changes a node's resources.env now answer 403 for
everyone but a superuser. MCP tools and the assistant reach the same
routes, so they inherit the gate. Node types report runs_code.

The editor shows code read-only with a note, disables a Command node's
settings, leaves code nodes and reusable nodes out of the palette and
paste, and the Modules page offers no install.
This commit is contained in:
2026-10-06 11:36:30 +02:00
parent 2914d860b1
commit 6802cd2203
19 changed files with 391 additions and 26 deletions
+5
View File
@@ -2573,6 +2573,11 @@ export const NodeTypeInfoSchema = {
title: 'Has Source',
default: false
},
runs_code: {
type: 'boolean',
title: 'Runs Code',
default: false
},
free_params: {
type: 'boolean',
title: 'Free Params',
+2
View File
@@ -1478,6 +1478,8 @@ export class ModulesService {
* Apply Modules
* Install exactly these requirements, then hand them to the workers.
*
* A superuser's: a package runs its own code on install and on import.
*
* A manifest that does not resolve changes nothing: the venv is left as it
* was and the stored manifest is only written once the install succeeded.
*
+1
View File
@@ -888,6 +888,7 @@ export type NodeTypeInfo = {
[key: string]: unknown;
};
has_source?: boolean;
runs_code?: boolean;
free_params?: boolean;
plugin?: (string | null);
};