gristlabs_grist-core/app/server/lib
Paul Fitzpatrick 66643a5e6b
add a pyodide-based "sandbox" flavor (#437)
This adds a new `GRIST_SANDBOX_FLAVOR=pyodide` option where the
version of Python used for the data engine is wasm, and so can
be run by node like the rest of the back end. It still runs as
a separate process.

There are a few small version changes made to packages to avoid
various awkwardnesses present in the current versions. All existing
tests pass.

This is very experimental. To use, you'll need something with
a bash shell and make. First do:
```
cd sandbox/pyodide
make setup           # README.md and Makefile have details
cd ..
```

Then running Grist as:
```
GRIST_SANDBOX_FLAVOR=pyodide yarn start
```
should work. Adding a formula with content:
```
import sys; return sys.version
```
should return a different Python version than other sandboxes.

The motivation for this work is to have a form of sandboxing
that will work on Windows for Grist Electron (for Linux we have
gvisor/runsc, for Mac we have sandbox-exec, but I haven't found
anything comparable for Windows).

It also brings a back-end-free version of Grist a bit closer, for
use-cases where that would make sense - such as serving a report
(in the form of a Grist document) on a static site.
2023-03-06 16:56:25 -05:00
..
AccessTokens.ts (core) add an access token mechanism to help with attachments in custom widgets 2022-07-19 11:55:18 -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) do not look at content of recent actions when loading documents 2021-09-29 11:27:02 -04:00
ActionHistoryImpl.ts Correct spelling mistakes 2022-02-19 09:46:49 +00:00
ActionSummary.ts Correct spelling mistakes 2022-02-19 09:46:49 +00:00
ActiveDoc.ts (core) Persist forks in home db 2023-02-20 22:46:36 -05:00
ActiveDocImport.ts Fix bug that skips empty columns during imports 2022-08-11 11:05:30 -07:00
AppEndpoint.ts (core) add a log message on proxying failures 2022-08-24 09:16:19 -04:00
AppSettings.ts (core) give preliminary support in core for storing snapshots in S3-compatible stores via minio-js client 2022-12-21 11:41:31 -05:00
Assistance.ts (core) Porting back AI formula backend 2023-02-08 17:15:59 +01:00
Authorizer.ts (core) User language switcher 2023-01-26 09:47:14 +01:00
BrowserSession.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
checksumFile.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
Client.ts (core) Adding new column in users table "ref" with unique identifier. 2022-10-04 15:19:28 +02:00
Comm.ts (core) i18 2022-09-29 18:02:09 +02:00
configureMinIOExternalStorage.ts Add region param for MinIO bucket (#428) 2023-02-15 09:12:38 -05:00
dbUtils.ts (core) remove ormconfig.js from saas build; more sendgrid logging 2023-03-01 17:02:47 -05:00
DiscourseConnect.ts (core) Adding GristConnect login system 2022-05-18 20:28:25 +02:00
DocApi.ts (core) Persist forks in home db 2023-02-20 22:46:36 -05:00
DocClients.ts (core) add a yarn run cli tool, and add a sqlite gristify option 2022-07-14 12:00:30 -04:00
DocManager.ts (core) Adding new column in users table "ref" with unique identifier. 2022-10-04 15:19:28 +02:00
DocPluginData.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
DocPluginManager.ts (core) add an access token mechanism to help with attachments in custom widgets 2022-07-19 11:55:18 -04:00
DocSession.ts (core) User language switcher 2023-01-26 09:47:14 +01:00
DocSnapshots.ts (core) serialize document uploads and DocSnapshots.versions() to reduce surprises 2022-08-01 15:42:39 -04:00
DocStorage.ts (core) deal with write access for attachments 2022-11-15 09:52:32 -05:00
DocStorageManager.ts (core) dust off electron build a little bit 2022-07-29 11:19:26 -04:00
docUtils.d.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
docUtils.js Correct spelling mistakes 2022-02-19 09:46:49 +00:00
DocWorker.ts (core) Porting back AI formula backend 2023-02-08 17:15:59 +01:00
DocWorkerMap.ts (core) Add unquarantine command to admin CLI 2022-08-15 13:04:55 -07:00
ExcelFormatter.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
ExpandedQuery.ts Correct spelling mistakes 2022-02-19 09:46:49 +00:00
Export.ts (core) control the distribution of attachment metadata 2022-12-22 09:10:30 -05:00
ExportCSV.ts Fixing all eslint's reported error 2023-01-03 17:22:58 +01:00
ExportXLSX.ts Fixing all eslint's reported error 2023-01-03 17:22:58 +01:00
expressWrap.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
ExternalStorage.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
extractOrg.ts (core) upgrade typeorm so we can support newer postgres 2022-09-02 15:34:21 -04: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 A set of tweaks to simplify electron packaging (#421) 2023-02-13 15:52:17 -05:00
ForwardAuthLogin.ts (core) clean up interaction of forward auth with session 2022-06-15 13:06:12 -04:00
GoogleAuth.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
GoogleExport.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
GoogleImport.ts (core) Adding DELETE /api/docs/webhooks/queue endpoint to clear the queue 2022-12-01 12:23:19 +01:00
GranularAccess.ts (core) control the distribution of attachment metadata 2022-12-22 09:10:30 -05:00
GristServer.ts A set of tweaks to simplify electron packaging (#421) 2023-02-13 15:52:17 -05:00
gristSessions.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
guessExt.ts (core) Switch excel import parsing from messytables+xlrd to openpyxl, and ignore empty rows 2022-05-12 14:43:21 +02:00
HashUtil.ts (core) add more detail to /compare endpoint 2020-09-18 16:31:29 -04:00
HostedMetadataManager.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
HostedStorageManager.ts (core) Persist forks in home db 2023-02-20 22:46:36 -05:00
httpEncoding.ts (core) External requests 2022-06-17 21:53:20 +02:00
IBilling.ts (core) Add basic activation page to grist-ee 2022-08-23 10:30:52 -07:00
IChecksumStore.ts (core) revamp snapshot inventory 2020-10-30 13:52:46 -04:00
ICreate.ts add MinIO tests (#381) 2022-12-22 12:58:39 -05:00
IDocStorageManager.ts (core) add a yarn run cli tool, and add a sqlite gristify option 2022-07-14 12:00:30 -04:00
idUtils.ts (core) Persist forks in home db 2023-02-20 22:46:36 -05:00
IElectionStore.ts (core) move some material to core that slipped through in a rebase 2020-07-23 11:29:05 -04:00
initialDocSql.ts feat(ColumnDesc): create column description in database and link it to visual behaviors 2023-01-26 14:54:37 +01:00
INotifier.ts (core) Speed up and upgrade build. 2022-06-27 16:10:10 -04:00
ISandbox.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
IShell.ts (core) dust off electron build a little bit 2022-07-29 11:19:26 -04:00
ITestingHooks-ti.ts (core) Converting server-side Comm.js to typescript 2022-06-07 15:47:17 -04:00
ITestingHooks.ts (core) Converting server-side Comm.js to typescript 2022-06-07 15:47:17 -04:00
log.ts (core) give instructions on using Grist with docker 2020-10-28 13:59:13 -04:00
LogMethods.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
manifest.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
MinimalLogin.ts A set of tweaks to simplify electron packaging (#421) 2023-02-13 15:52:17 -05:00
MinIOExternalStorage.ts Add region param for MinIO bucket (#428) 2023-02-15 09:12:38 -05:00
NSandbox.ts add a pyodide-based "sandbox" flavor (#437) 2023-03-06 16:56:25 -05:00
OnDemandActions.ts (core) add GVISOR_LIMIT_MEMORY to cap memory available in sandbox 2022-05-18 14:26:27 -04:00
PermissionInfo.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
Permit.ts (core) Add new Grist login page 2022-04-01 15:24:19 -07:00
places.ts A set of tweaks to simplify electron packaging (#421) 2023-02-13 15:52:17 -05:00
PluginEndpoint.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
PluginManager.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
reportTimeTaken.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
Requests.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
requestUtils.ts (core) Persist forks in home db 2023-02-20 22:46:36 -05:00
RowAccess.ts (core) control the distribution of attachment metadata 2022-12-22 09:10:30 -05:00
SafePythonComponent.ts (core) Run and test imports only in Python 3, upgrade openpyxl, fix weird date handling 2022-09-02 16:27:34 +02:00
SamlConfig.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
SandboxControl.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
sandboxUtil.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
sendAppPage.ts (core) User language switcher 2023-01-26 09:47:14 +01:00
ServerColumnGetters.ts (core) Adding sort options for columns. 2021-11-03 15:31:39 +01:00
ServerLocale.ts (core) Converting server-side Comm.js to typescript 2022-06-07 15:47:17 -04:00
serverUtils.ts (core) Adding DELETE /api/docs/webhooks/queue endpoint to clear the queue 2022-12-01 12:23:19 +01:00
Sessions.ts (core) Converting server-side Comm.js to typescript 2022-06-07 15:47:17 -04:00
Sharing.ts (core) Syncing db with data when actions are rejected 2022-11-29 10:34:57 +01: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) add a yarn run cli tool, and add a sqlite gristify option 2022-07-14 12:00:30 -04:00
TableMetadataLoader.ts (core) open documents without blocking on data engine 2021-10-01 10:18:56 -04:00
TagChecker.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
TestingHooks.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
TestLogin.ts (core) make the support account configurable, and allow listing public sites 2022-10-14 14:23:59 -04:00
Throttle.ts (core) Fix bugs with intervals 2022-08-25 12:38:36 -07:00
TimeQuery.ts (core) Raw renames 2022-04-27 22:21:55 +02:00
Triggers.ts Fixing all eslint's reported error 2023-01-03 17:22:58 +01:00
UnsafeNodeComponent.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00
uploads.ts (core) remove deprecated /download endpoint in favor of newer /api/docs/NNNN/download 2022-09-20 15:26:04 -04:00
WidgetRepository.ts (core) A few assorted one-line fixes 2023-01-09 23:31:04 -05:00
WorkCoordinator.ts (core) Faster builds all around. 2022-07-04 10:42:40 -04:00