gristlabs_grist-core/app/plugin
Paul Fitzpatrick cc9a9ae8c5 (core) support for bundling custom widgets with the Grist app
Summary:
This adds support for bundling custom widgets with the Grist app, as follows:

 * Adds a new `widgets` component to plugins mechanism.
 * When a set of widgets is provided in a plugin, the html/js/css assets for those widgets are served on the existing untrusted user content port.
 * Any bundled `grist-plugin-api.js` will be served with the Grist app's own version of that file. It is important that bundled widgets not refer to https://docs.getgrist.com for the plugin js, since they must be capable of working offline.
 * The logic for configuring that port is updated a bit.
 * I removed the CustomAttachedView class in favor of applying settings of bundled custom widgets more directly, without modification on view.

Any Grist installation via docker will need an extra step now, since there is an extra port that needs exposing for full functionality. I did add a `GRIST_TRUST_PLUGINS` option for anyone who really doesn't want to do this, and would prefer to trust the plugins and have them served on the same port.

Actually making use of bundling will be another step. It'll be important to mesh it with our SaaS's use of APP_STATIC_URL for serving most static assets.

Design sketch: https://grist.quip.com/bJlWACWzr2R9/Bundled-custom-widgets

Test Plan: added a test

Reviewers: georgegevoian

Reviewed By: georgegevoian

Differential Revision: https://phab.getgrist.com/D4069
2023-10-27 17:00:10 -04:00
..
CustomSectionAPI-ti.ts (core) Move theme from ConfigNotifier to ThemeNotifier 2023-10-10 21:45:10 -04:00
CustomSectionAPI.ts (core) Move theme from ConfigNotifier to ThemeNotifier 2023-10-10 21:45:10 -04:00
DocApiTypes-ti.ts add an endpoint for doing SQL selects (#641) 2023-09-04 09:21:18 -04:00
DocApiTypes.ts add an endpoint for doing SQL selects (#641) 2023-09-04 09:21:18 -04:00
FileParserAPI-ti.ts (core) Improve encoding detection for csv imports, and make encoding an editable option. 2023-08-24 09:50:52 -04:00
FileParserAPI.ts (core) Improve encoding detection for csv imports, and make encoding an editable option. 2023-08-24 09:50:52 -04:00
grist-plugin-api.ts (core) Options for plugin API functions which fetch data from the selected table or record 2023-10-26 23:46:00 +02:00
GristAPI-ti.ts (core) Options for plugin API functions which fetch data from the selected table or record 2023-10-26 23:46:00 +02:00
GristAPI.ts (core) Options for plugin API functions which fetch data from the selected table or record 2023-10-26 23:46:00 +02:00
GristData-ti.ts (core) Update Plugin API documentation 2022-05-24 17:27:34 -07:00
GristData.ts (core) flesh out getAccessToken API documentation 2022-07-28 08:50:12 -04:00
GristTable-ti.ts (core) add grist.onRecord and grist.onRecords event handlers 2020-08-13 14:34:23 -04:00
GristTable.ts (core) Update Plugin API documentation 2022-05-24 17:27:34 -07:00
gutil.ts (core) add grist.selectedTable.create/update/destroy/upsert to custom widget api 2022-03-15 11:11:58 -04:00
ImportSourceAPI-ti.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
ImportSourceAPI.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
InternalImportSourceAPI-ti.ts (core) Adding schema validation for records endpoint 2021-10-18 21:40:50 +02:00
InternalImportSourceAPI.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
objtypes.ts Use relative imports only in plugin folder (#328) 2022-10-26 10:41:38 -04:00
PluginManifest-ti.ts (core) support for bundling custom widgets with the Grist app 2023-10-27 17:00:10 -04:00
PluginManifest.ts (core) support for bundling custom widgets with the Grist app 2023-10-27 17:00:10 -04:00
README.md (core) configure typedoc for generating plugin api documentation 2022-04-04 18:11:33 -04:00
RenderOptions-ti.ts (core) Adding schema validation for records endpoint 2021-10-18 21:40:50 +02:00
RenderOptions.ts (core) configure typedoc for generating plugin api documentation 2022-04-04 18:11:33 -04:00
StorageAPI-ti.ts (core) Adding schema validation for records endpoint 2021-10-18 21:40:50 +02:00
StorageAPI.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
TableOperations.ts Use relative imports only in plugin folder (#328) 2022-10-26 10:41:38 -04:00
TableOperationsImpl.ts DocApi: Implement DELETE on columns (#601) (#640) 2023-08-24 14:33:53 +02:00
tsconfig.json (core) move home server into core 2020-07-21 20:39:10 -04:00
TypeCheckers.ts (core) Speed up and upgrade build. 2022-06-27 16:10:10 -04:00
WidgetAPI-ti.ts (core) Widget options api 2022-01-13 11:10:17 +01:00
WidgetAPI.ts (core) Widget options api 2022-01-13 11:10:17 +01:00

Methods here are available for use in Grist custom widgets.