@mashroom/mashroom
Advanced tools
Changelog
2.0.3 (Mai 6, 2022)
Changelog
2.0.2 (Mai 2, 2022)
clientServices.portalAppService.loadedPortalApps[0].errorPluginMissing;
Changelog
2.0.0 (April 25, 2022)
Changelog
2.0.0-alpha.4 (March 24, 2022)
Changelog
2.0.0-alpha.3 (February 7, 2022)
{
"plugins": [
{
"name": "Unique Name For My App",
// ...
"defaultConfig": {
"title": {
"en": "My App",
"de": "Meine App"
},
"description": {
"en": "A simple React SPA with cool features",
"de": "Ein einfacher React SPA mit tollen Features"
}
//...
}
}
]
}
Changelog
2.0.0-alpha.2 (February 1, 2022)
const bootstrap: MashroomStoragePluginBootstrapFunction = async (pluginName, pluginConfig, pluginContextHolder) => {
const {services: {core: {pluginService, healthProbeService}}} = pluginContextHolder.getPluginContext();
healthProbeService.registerProbe(pluginName, healthProbe);
pluginService.onUnloadOnce(pluginName, () => {
healthProbeService.unregisterProbe(pluginName);
});
// ...
};
Changelog
2.0.0-alpha.1 (January 21, 2022)
{
"Mashroom CDN Services": {
"cdnHosts": [
"//cdn1.my-portal.com",
"//cdn2.my-portal.com"
]
}
}
const bootstrap: MashroomPortalAppPluginBootstrapFunction = (portalAppHostElement, portalAppSetup, clientServices) => {
const {appConfig: {editorTarget /* MashroomPortalConfigEditorTarget */}} = portalAppSetup;
const currentAppConfig = editorTarget.appConfig;
// Open Editor with current config
// Update with new Config
editorTarget.updateAppConfig(newAppConfig);
};
In the App that wants to use the editor just update the plugin definition like this:
"defaultConfig": {
"editor": {
"editorPortalApp": "My Editor App",
"position": "in-place"
}
}
Since the target App remains active it is also possible to use the message bus to exchange information between the editor and the actual App. {
"ssrConfig": {
"ssrEnabled": true,
"renderTimoutMs": 2000,
"cacheTTLSec": 300,
"inlineStyles": true
}
}
{
"name": "My Single Page App",
"title": "My Single Page App",
"category": "Demo",
"tags": ["what", "ever"],
"type": "portal-app",
"bootstrap": "startMyApp",
"defaultConfig": {
"resourcesRoot": "./dist",
"restProxies": {
"spaceXApi": {
"targetUri": "https://api.spacexdata.com/v3",
"sendPermissionsHeader": false,
"restrictToRoles": ["Role1"]
}
}
}
}
to:
{
"name": "My Single Page App",
"type": "portal-app2",
"clientBootstrap": "startMyApp",
"local": {
"resourcesRoot": "./dist",
"ssrBootstrap": "optional-ssr-bootstrap-file"
},
"remote": {
"resourcesRoot": "/if-remote-access-supported",
"ssrInitialHtmlPath": "optional-ssr-route"
},
"defaultConfig": {
"title": "My Single Page App",
"category": "Demo",
"tags": ["what", "ever"],
"caching": {
"ssrHtml": "same-config-and-user"
},
"editor": {
"editorPortalApp": "My Optional App Config Editor",
"position": "in-place",
"appConfig": {
}
},
"proxies": {
"spaceXApi": {
"targetUri": "https://api.spacexdata.com/v3",
"sendPermissionsHeader": false,
"restrictToRoles": ["Role1"]
}
}
}
}
await storage.find({ $and: [{ b: { $gt: 1 }}, { x: { $exists: false }}]}, 10, 0, { b: 'asc' })