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 (core) add endpoints for clearing snapshots and actions 2020-12-18 13:32:31 -05:00
ActionHistoryImpl.ts (core) When parsing ActionHistory into ActionGroups, avoid keeping many large actions in memory. 2020-09-19 20:45:33 -04:00
ActionSummary.ts (core) tolerate table renames when displaying differences 2020-11-12 10:55:15 -05:00
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 (core) move home server into core 2020-07-21 20:39:10 -04:00
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 (core) move home server into core 2020-07-21 20:39:10 -04:00
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 (core) move home server into core 2020-07-21 20:39:10 -04:00
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 (core) move home server into core 2020-07-21 20:39:10 -04:00
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 (core) move home server into core 2020-07-21 20:39:10 -04:00
docUtils.js (core) move home server into core 2020-07-21 20:39:10 -04:00
DocWorker.ts (core) Export to Excel and Send to drive 2021-07-21 16:36:00 +02:00
DocWorkerMap.ts (core) support GRIST_WORKER_GROUP to place worker into an exclusive group 2020-11-02 15:46:46 -05:00
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 (core) move home server into core 2020-07-21 20:39:10 -04:00
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 (core) move home server into core 2020-07-21 20:39:10 -04:00
HashUtil.ts (core) add more detail to /compare endpoint 2020-09-18 16:31:29 -04:00
HostedMetadataManager.ts (core) revamp snapshot inventory 2020-10-30 13:52:46 -04:00
HostedStorageManager.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
IBilling.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
IChecksumStore.ts (core) revamp snapshot inventory 2020-10-30 13:52:46 -04:00
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 (core) move some material to core that slipped through in a rebase 2020-07-23 11:29:05 -04:00
INotifier.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
ISandbox.ts (core) add SELF_HYPERLINK() function for generating links to the current document 2021-03-18 19:37:07 -04:00
IShell.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
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 (core) give instructions on using Grist with docker 2020-10-28 13:59:13 -04:00
manifest.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
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 (core) fix docker packaging after core shuffle 2020-07-22 14:45:42 -04:00
PluginEndpoint.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
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 (core) move home server into core 2020-07-21 20:39:10 -04:00
sandboxUtil.js (core) move home server into core 2020-07-21 20:39:10 -04:00
sendAppPage.ts (core) Google auth endpoint has not responded with auth code 2021-07-21 20:18:04 +02:00
ServerColumnGetters.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
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 (core) move home server into core 2020-07-21 20:39:10 -04:00
shutdown.js (core) move home server into core 2020-07-21 20:39:10 -04:00
SQLiteDB.ts (core) revamp snapshot inventory 2020-10-30 13:52:46 -04:00
TagChecker.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
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 (core) move home server into core 2020-07-21 20:39:10 -04:00
TimeQuery.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
UnsafeNodeComponent.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
uploads.ts (core) Configure more comprehensive eslint rules for Typescript 2021-04-26 18:54:55 -04:00
WorkCoordinator.ts (core) move home server into core 2020-07-21 20:39:10 -04:00