mirror of
https://github.com/gristlabs/grist-core.git
synced 2024-10-27 20:44:07 +00:00
d431c1eb63
Summary: This adds a basic sandbox check to the admin panel. It also makes the "probes" used in the boot page available from the admin panel, though they are not yet displayed. The sandbox check is built as a probe. In the interests of time, a lot of steps had to be deferred: * Reconcile fully the admin panel and boot page. Specifically, the admin panel should be equally robust to common configuration problems. * Add tests for the sandbox check. * Generalize to multi-server setups. The read-out will not yet be useful for setups where doc workers and home servers are configured separately. Test Plan: Added new test Reviewers: jarek, georgegevoian Reviewed By: georgegevoian Differential Revision: https://phab.getgrist.com/D4241
35 lines
1.2 KiB
TypeScript
35 lines
1.2 KiB
TypeScript
import log from 'app/server/lib/log';
|
|
import {ISandboxOptions} from 'app/server/lib/NSandbox';
|
|
|
|
/**
|
|
* Starting to whittle down the options used when creating a sandbox, to leave more
|
|
* freedom in how the sandbox works.
|
|
*/
|
|
export interface ISandboxCreationOptions {
|
|
comment?: string; // an argument to add in command line when possible, so it shows in `ps`
|
|
|
|
logCalls?: boolean;
|
|
logMeta?: log.ILogMeta;
|
|
logTimes?: boolean;
|
|
|
|
// This batch of options is used by SafePythonComponent, so are important for importers.
|
|
entryPoint?: string; // main script to call - leave undefined for default
|
|
sandboxMount?: string; // if defined, make this path available read-only as "/sandbox"
|
|
importMount?: string; // if defined, make this path available read-only as "/importdir"
|
|
|
|
preferredPythonVersion?: '2' | '3';
|
|
|
|
sandboxOptions?: Partial<ISandboxOptions>;
|
|
}
|
|
|
|
export interface ISandbox {
|
|
shutdown(): Promise<unknown>; // TODO: tighten up this type.
|
|
pyCall(funcName: string, ...varArgs: unknown[]): Promise<any>;
|
|
reportMemoryUsage(): Promise<void>;
|
|
getFlavor(): string;
|
|
}
|
|
|
|
export interface ISandboxCreator {
|
|
create(options: ISandboxCreationOptions): ISandbox;
|
|
}
|