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:
@@ -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',
|
||||
|
||||
@@ -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.
|
||||
*
|
||||
|
||||
@@ -888,6 +888,7 @@ export type NodeTypeInfo = {
|
||||
[key: string]: unknown;
|
||||
};
|
||||
has_source?: boolean;
|
||||
runs_code?: boolean;
|
||||
free_params?: boolean;
|
||||
plugin?: (string | null);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user