Managing Plugins ​
This section provides an overview of managing plugins using the Qelos SDK. The examples demonstrate how to create, update, remove, and retrieve plugin information, enabling administrators to effectively manage plugins.
Note: Plugin management is only available through the administrator SDK (QelosAdminSDK), not the regular SDK.
Plugin Methods ​
The managePlugins module in the administrator SDK provides the following methods:
Getting List of Plugins ​
To get a list of all plugins:
typescript
const plugins = await sdkAdmin.managePlugins.getList();Getting a Specific Plugin ​
To retrieve a specific plugin by its ID:
typescript
const plugin = await sdkAdmin.managePlugins.getById('pluginId');Creating a Plugin ​
To create a new plugin:
typescript
const newPlugin = await sdkAdmin.managePlugins.create({
name: 'My Plugin',
appUrl: 'https://my-plugin.example.com',
description: 'A custom plugin for my application',
version: '1.0.0',
// Optional fields
subscribedEvents: [],
microFrontends: [],
cruds: [],
injectables: [],
navBarGroups: []
});Updating a Plugin ​
To update an existing plugin's information:
typescript
const updatedPlugin = await sdkAdmin.managePlugins.update('pluginId', {
version: '1.1.0',
description: 'Updated description'
});Removing a Plugin ​
To remove a plugin:
typescript
await sdkAdmin.managePlugins.remove('pluginId');Plugin Interfaces ​
IPluginCreateParams ​
The create method accepts the following parameters:
typescript
interface IPluginCreateParams {
name: string;
appUrl: string;
description?: string;
version?: string;
url?: string;
proxyUrl?: string;
subscribedEvents?: Partial<IEventSubscriber>[];
microFrontends?: Partial<IMicroFrontend>[];
cruds?: Partial<IPluginCrud>[];
injectables?: Partial<IInjectable>[];
navBarGroups?: Partial<INavbarGroup>[];
}IPluginUpdateParams ​
The update method accepts partial updates:
typescript
type IPluginUpdateParams = Partial<Omit<IPlugin, 'tenant' | 'user' | 'token' | 'auth' | '_id' | 'id' | 'createdAt' | 'updatedAt'>>;Usage Example ​
Here's a complete example of managing plugins:
typescript
import QelosAdminSDK from '@qelos/sdk/administrator';
// Initialize the admin SDK
const sdkAdmin = new QelosAdminSDK({
appUrl: 'https://your-qelos-app.com',
fetch: globalThis.fetch
});
// Authenticate as admin
await sdkAdmin.authentication.oAuthSignin({
username: 'admin@example.com',
password: 'password'
});
// Get all plugins
const plugins = await sdkAdmin.managePlugins.getList();
console.log(`Found ${plugins.length} plugins`);
// Create a new plugin
const newPlugin = await sdkAdmin.managePlugins.create({
name: 'Analytics Plugin',
appUrl: 'https://analytics.example.com',
description: 'Provides analytics functionality',
version: '1.0.0'
});
console.log(`Created plugin with ID: ${newPlugin._id}`);
// Update the plugin
const updatedPlugin = await sdkAdmin.managePlugins.update(newPlugin._id, {
version: '1.0.1',
description: 'Provides enhanced analytics functionality'
});
// Get specific plugin
const plugin = await sdkAdmin.managePlugins.getById(newPlugin._id);
console.log(`Plugin name: ${plugin.name}`);
// Remove the plugin
await sdkAdmin.managePlugins.remove(newPlugin._id);
console.log('Plugin removed');