gristlabs_grist-core/app/server/lib
Paul Fitzpatrick bb8cb2593d (core) support python3 in grist-core, and running engine via docker and/or gvisor
Summary:
 * Moves essential plugins to grist-core, so that basic imports (e.g. csv) work.
 * Adds support for a `GRIST_SANDBOX_FLAVOR` flag that can systematically override how the data engine is run.
   - `GRIST_SANDBOX_FLAVOR=pynbox` is "classic" nacl-based sandbox.
   - `GRIST_SANDBOX_FLAVOR=docker` runs engines in individual docker containers. It requires an image specified in `sandbox/docker` (alternative images can be named with `GRIST_SANDBOX` flag - need to contain python and engine requirements). It is a simple reference implementation for sandboxing.
   - `GRIST_SANDBOX_FLAVOR=unsandboxed` runs whatever local version of python is specified by a `GRIST_SANDBOX` flag directly, with no sandboxing. Engine requirements must be installed, so an absolute path to a python executable in a virtualenv is easiest to manage.
   - `GRIST_SANDBOX_FLAVOR=gvisor` runs the data engine via gvisor's runsc. Experimental, with implementation not included in grist-core. Since gvisor runs on Linux only, this flavor supports wrapping the sandboxes in a single shared docker container.
 * Tweaks some recent express query parameter code to work in grist-core, which has a slightly different version of express (smoke test doesn't catch this since in Jenkins core is built within a workspace that has node_modules, and wires get crossed - in a dev environment the problem on master can be seen by doing `buildtools/build_core.sh /tmp/any_path_outside_grist`).

The new sandbox options do not have tests yet, nor does this they change the behavior of grist servers today. They are there to clean up and consolidate a collection of patches I've been using that were getting cumbersome, and make it easier to run experiments.

I haven't looked closely at imports beyond core.

Test Plan: tested manually against regular grist and grist-core, including imports

Reviewers: alexmojaki, dsagal

Reviewed By: alexmojaki

Differential Revision: https://phab.getgrist.com/D2942
2021-07-28 09:02:32 -04:00
..
ACLFormula.ts (core) add OWNERS='owners', EDITOR='editors', VIEWER='viewers' to condition formulas 2021-03-19 18:20:33 -04:00
ActionHistory.ts
ActionHistoryImpl.ts
ActionSummary.ts
ActiveDoc.ts (core) read document as owner in pre-fork mode, if have sufficient access to it 2021-07-21 14:52:31 -04:00
ActiveDocImport.ts
AppEndpoint.ts (core) Configure more comprehensive eslint rules for Typescript 2021-04-26 18:54:55 -04:00
Authorizer.ts (core) Fix session handling when redirected to login when visiting a doc on a team site 2021-07-15 17:51:16 -04:00
BrowserSession.ts (core) Remove LoginSession, which was mainly serving situations that are no longer used. 2021-07-12 13:04:00 -04:00
checksumFile.ts
Client.ts (core) Remove LoginSession, which was mainly serving situations that are no longer used. 2021-07-12 13:04:00 -04:00
Comm.js (core) Remove LoginSession, which was mainly serving situations that are no longer used. 2021-07-12 13:04:00 -04:00
dbUtils.ts
DocApi.ts (core) Export to Excel and Send to drive 2021-07-21 16:36:00 +02:00
DocClients.ts (core) granular access control in the presence of schema changes 2021-03-01 13:49:31 -05:00
DocManager.ts (core) read document as owner in pre-fork mode, if have sufficient access to it 2021-07-21 14:52:31 -04:00
DocPluginData.ts
DocPluginManager.ts (core) Configure more comprehensive eslint rules for Typescript 2021-04-26 18:54:55 -04:00
DocSession.ts (core) read document as owner in pre-fork mode, if have sufficient access to it 2021-07-21 14:52:31 -04:00
DocSnapshots.ts (core) start reconciling forking with granular access 2021-01-12 14:08:49 -05:00
DocStorage.ts (core) Barely working reference lists in frontend 2021-07-23 18:41:44 +02:00
DocStorageManager.ts (core) uncheck FullCopy special when copying/forking a document 2021-04-29 08:56:54 -04:00
docUtils.d.ts
docUtils.js
DocWorker.ts (core) Export to Excel and Send to drive 2021-07-21 16:36:00 +02:00
DocWorkerMap.ts
ExcelFormatter.ts (core) Export to Excel and Send to drive 2021-07-21 16:36:00 +02:00
ExpandedQuery.ts (core) Fix 'table not found' error when converting columns in the presence of per-row ACL rules. 2021-02-10 09:22:34 -05:00
Export.ts (core) support python3 in grist-core, and running engine via docker and/or gvisor 2021-07-28 09:02:32 -04:00
ExportCSV.ts (core) Export to Excel and Send to drive 2021-07-21 16:36:00 +02:00
ExportXLSX.ts (core) Google auth endpoint has not responded with auth code 2021-07-21 20:18:04 +02:00
expressWrap.ts (core) give more detailed reasons for access denied when memos are present 2021-02-15 17:02:24 -05:00
ExternalStorage.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
extractOrg.ts (core) Refactoring google drive plugin 2021-07-14 09:52:04 +02:00
FileParserElement.ts
filterUtils.ts (core) uncheck FullCopy special when copying/forking a document 2021-04-29 08:56:54 -04:00
FlexServer.ts (core) Google auth endpoint has not responded with auth code 2021-07-21 20:18:04 +02:00
GoogleAuth.ts (core) support python3 in grist-core, and running engine via docker and/or gvisor 2021-07-28 09:02:32 -04:00
GoogleExport.ts (core) support python3 in grist-core, and running engine via docker and/or gvisor 2021-07-28 09:02:32 -04:00
GranularAccess.ts (core) read document as owner in pre-fork mode, if have sufficient access to it 2021-07-21 14:52:31 -04:00
GristServer.ts (core) add appsumo endpoints with stub implementations 2021-06-21 16:04:33 -04:00
gristSessions.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
guessExt.ts
HashUtil.ts
HostedMetadataManager.ts
HostedStorageManager.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
IBilling.ts
IChecksumStore.ts
ICreate.ts (core) Remove LoginSession, which was mainly serving situations that are no longer used. 2021-07-12 13:04:00 -04:00
IDocStorageManager.ts (core) uncheck FullCopy special when copying/forking a document 2021-04-29 08:56:54 -04:00
idUtils.ts (core) start reconciling forking with granular access 2021-01-12 14:08:49 -05:00
IElectionStore.ts
INotifier.ts
ISandbox.ts (core) add SELF_HYPERLINK() function for generating links to the current document 2021-03-18 19:37:07 -04:00
IShell.ts
ITestingHooks-ti.ts (core) Remove a bunch of dead code 2021-07-01 18:38:21 +02:00
ITestingHooks.ts (core) Remove a bunch of dead code 2021-07-01 18:38:21 +02:00
log.ts
manifest.ts
NSandbox.ts (core) support python3 in grist-core, and running engine via docker and/or gvisor 2021-07-28 09:02:32 -04:00
OnDemandActions.ts (core) Configure more comprehensive eslint rules for Typescript 2021-04-26 18:54:55 -04:00
PermissionInfo.ts (core) Add 'user' variable to trigger formulas 2021-07-15 15:18:32 -07:00
Permit.ts (core) start reconciling forking with granular access 2021-01-12 14:08:49 -05:00
places.ts
PluginEndpoint.ts
PluginManager.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
requestUtils.ts (core) support python3 in grist-core, and running engine via docker and/or gvisor 2021-07-28 09:02:32 -04:00
RowAccess.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
SafePythonComponent.ts
sandboxUtil.js
sendAppPage.ts (core) Google auth endpoint has not responded with auth code 2021-07-21 20:18:04 +02:00
ServerColumnGetters.ts
serverUtils.ts (core) start applying defenses for untrusted document uploads 2021-07-14 18:34:27 -04:00
Sessions.ts (core) Remove LoginSession, which was mainly serving situations that are no longer used. 2021-07-12 13:04:00 -04:00
Sharing.ts (core) Add 'user' variable to trigger formulas 2021-07-15 15:18:32 -07:00
shortDesc.ts
shutdown.js
SQLiteDB.ts
TagChecker.ts
TestingHooks.ts (core) Remove LoginSession, which was mainly serving situations that are no longer used. 2021-07-12 13:04:00 -04:00
Throttle.ts
TimeQuery.ts
UnsafeNodeComponent.ts
uploads.ts (core) Configure more comprehensive eslint rules for Typescript 2021-04-26 18:54:55 -04:00
WorkCoordinator.ts