@mashroom/mashroom-security-provider-ldap
Advanced tools
Changelog
2.4.2 (June 21, 2023)
Changelog
2.4.1 (June 14, 2023)
Changelog
2.4.0 (June 9, 2023)
Changelog
2.3.2 (April 14, 2023)
Changelog
2.3.1 (April 3, 2023)
Changelog
2.3.0 (February 10, 2023)
import type {MashroomServerConfig} from '@mashroom/mashroom-json-schemas/type-definitions';
const serverConfig: MashroomServerConfig = {
name: 'Mashroom Test Server 7',
port: 5050,
// ...
];
export default serverConfig;
output: {
// ...
chunkFilename: 'my-app.[contenthash].js',
}
output: {
path: __dirname + '/dist',
filename: 'my_shared_library.js',
chunkFilename: 'my_shared_library.[contenthash].js'
}
// If the services is added as "required" in the plugin definition
const requiredService: MashroomSecurityService = pluginContext.services.security!.service;
// Otherwise
const optionalService: MashroomSecurityService | unknown = pluginContext.services.security?.service;
// Alternatively extend MashroomServicePluginNamespaces in a type declaration file
declare module '@mashroom/mashroom/type-definitions' {
export interface MashroomServicePluginNamespaces {
security: { service: MashroomSecurityService; } | /* might not be loaded yet */ undefined;
// Orther service plugins
}
}
Changelog
2.2.3 (December 19, 2022)
Changelog
2.2.2 (December 17, 2022)
export type MashroomPortalAppSSRRemoteRequest = {
readonly originalRequest: {
readonly path: string;
readonly queryParameters: Record<string, any>;
};
readonly portalAppSetup: MashroomPortalAppSetup;
}
Changelog
2.2.1 (November 4, 2022)
Changelog
2.2.0 (November 4, 2022)
Portal: Fixed the problem that users were kicked out of the Portal when requests to /api/users/authenticated/authExpiration failed (see issue #99)
Portal: Added support for server-side rendering of Composite Apps, which use other Portal Apps as their building blocks. It is now possible to define embedded Portal Apps in the SSR bootstrap like so:
const bootstrap: MashroomPortalAppPluginSSRBootstrapFunction = async (portalAppSetup, req) => {
// Generate server-side HTML that contains a <div id="unique-host-element-id"></div>
const html = renderToString(<App/>);
return {
html,
embeddedApps: [
{
pluginName: 'The other App',
appConfig: {},
appAreaId: 'unique-host-element-id',
}
]
};
};
In the Composite App make sure you don't call portalAppService.loadApp()
for that already integrated App,
instead you can get the appId of the server-side embedded App like this to unload/reload it later:
const ssrPreloadedApp = portalAppService.loadedPortalApps.find(({ pluginName, portalAppAreaId }) => pluginName === 'The other App' && portalAppAreaId === 'unique-host-element-id');
let appId;
if (!ssrPreloadedApp) {
// SSR failed, load client-side
const result = await portalAppService.loadApp('host-element-id', 'The other App', null, null, {});
if (!result.error) {
appId = result.id;
}
} else {
appId = ssrPreloadedApp.id;
}
Checkout the mashroom-portal-demo-composite-app package for a working example.
NOTE: You have to make sure the embedded Apps aren't removed by the render framework during hydration,
in React you have to add dangerouslySetInnerHTML={{ __html: '' }}
to nodes whose children shall be ignored during hydration
Kubernetes Remote App Registry:
Remote App Registry: For multiple Portal Apps per endpoint, if one definition is invalid the other ones will be activated nevertheless
Core: Removed the forcefully stopping of the server after 5sec because this may interrupt pending requests. It also makes in impossible to increase the shutdown period via terminationGracePeriodSeconds on Kubernetes
Prometheus Exporter: Added support for Node.js clusters. It is now possible to use prom-client's AggregatorRegistry to gather the metrics in the master process and also to get the worker metrics within a PM2 cluster. Check out the README in the mashroom-monitoring-prometheus-exporter module for details
BREAKING CHANGE: Renamed the plugin mashroom-http-proxy-add-id-token to mashroom-http-proxy-add-access-token because access tokens should be used to make API requests on behalf of a user
Core: Failing ready and health probes log now the causes. This is helpful on Kubernetes when the Admin UI is not available if the ready probe fails
Added a SolidJS demo Portal App (Microfrontend)
Portal: BREAKING CHANGE: Themes must set now a CSS variable with the (fontawsome compatible) icon font, like so:
:root {
--mashroom-portal-font-icon: 'Font Awesome 6 Free';
}
Portal: Dropped support for IE11 (and all legacy browsers which don't support ES6)
Admin Toolbar: Upgrade to CodeMirror 6 with autocomplete support in the CSS editor
Admin Toolbar: Cleanup the DOM properly after a drag ends