Interface: IPluginSandbox
Defined in: src/types/interfaces/plugin.interface.ts:689
Plugin sandbox interface.
Remarks
Manages V8 isolates for plugin execution using isolated-vm. Provides security isolation with memory and CPU limits.
Example
const sandbox = container.resolve<IPluginSandbox>('IPluginSandbox');
// Create isolate for plugin
const isolate = await sandbox.createIsolate(manifest);
// Execute code in sandbox
const result = await sandbox.executeInSandbox(isolate, code, context);
// Dispose when done
sandbox.dispose(isolate);
Since
0.1.0
Methods
createIsolate()
createIsolate(
manifest):Promise<SandboxIsolate>
Defined in: src/types/interfaces/plugin.interface.ts:696
Creates a new V8 isolate for a plugin.
Parameters
manifest
Plugin manifest (used for resource limits)
Returns
Promise<SandboxIsolate>
Sandbox isolate handle
dispose()
dispose(
isolate):void
Defined in: src/types/interfaces/plugin.interface.ts:714
Disposes a single isolate.
Parameters
isolate
Isolate to dispose
Returns
void
disposeAll()
disposeAll():
void
Defined in: src/types/interfaces/plugin.interface.ts:719
Disposes all isolates.
Returns
void
executeInSandbox()
executeInSandbox<
T>(isolate,code,context):Promise<T>
Defined in: src/types/interfaces/plugin.interface.ts:707
Executes code in a sandbox isolate.
Type Parameters
• T
Parameters
isolate
Sandbox isolate handle
code
string
JavaScript code to execute
context
Execution context with services
Returns
Promise<T>
Execution result
Throws
If resource limits exceeded
getMemoryUsage()
getMemoryUsage(
isolate):number
Defined in: src/types/interfaces/plugin.interface.ts:727
Gets current memory usage for an isolate.
Parameters
isolate
Sandbox isolate handle
Returns
number
Memory usage in bytes