diff --git a/common/changes/@hcengineering/client-resources/enable-formatting-check_2025-11-20-14-13.json b/common/changes/@hcengineering/client-resources/enable-formatting-check_2025-11-20-14-13.json new file mode 100644 index 0000000000..77ca2b0fb1 --- /dev/null +++ b/common/changes/@hcengineering/client-resources/enable-formatting-check_2025-11-20-14-13.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@hcengineering/client-resources", + "comment": "Add support for custom exclude filters", + "type": "patch" + } + ], + "packageName": "@hcengineering/client-resources" +} \ No newline at end of file diff --git a/common/changes/@hcengineering/client/enable-formatting-check_2025-11-20-14-13.json b/common/changes/@hcengineering/client/enable-formatting-check_2025-11-20-14-13.json new file mode 100644 index 0000000000..508a372f52 --- /dev/null +++ b/common/changes/@hcengineering/client/enable-formatting-check_2025-11-20-14-13.json @@ -0,0 +1,10 @@ +{ + "changes": [ + { + "packageName": "@hcengineering/client", + "comment": "Add support for custom exclude filters", + "type": "patch" + } + ], + "packageName": "@hcengineering/client" +} \ No newline at end of file diff --git a/packages/client-resources/src/index.ts b/packages/client-resources/src/index.ts index 4c681a2261..9d126e8987 100644 --- a/packages/client-resources/src/index.ts +++ b/packages/client-resources/src/index.ts @@ -98,6 +98,7 @@ export default async () => { function: { GetClient: async (token: string, endpoint: string, opt?: ClientFactoryOptions): Promise => { const filterModel = getMetadata(clientPlugin.metadata.FilterModel) ?? 'none' + const extraFilter = getMetadata(clientPlugin.metadata.ExtraFilter) ?? [] const handler = async (handler: TxHandler): Promise => { const url = concatLink(endpoint, `/${token}`) @@ -170,7 +171,7 @@ export default async () => { return returnClientTxes(txes) } if (filterModel === 'ui') { - return returnUITxes(txes) + return returnUITxes(txes, extraFilter) } return txes } @@ -181,13 +182,13 @@ export default async () => { } } } -function returnUITxes (txes: Tx[]): Tx[] { +function returnUITxes (txes: Tx[], extraFilter: string[]): Tx[] { const configs = new Map, PluginConfiguration>() fillConfiguration(txes, configs) const allowedPlugins = [...getPlugins(), ...(getMetadata(clientPlugin.metadata.ExtraPlugins) ?? [])] const excludedPlugins = Array.from(configs.values()).filter( - (it) => !it.enabled || !allowedPlugins.includes(it.pluginId) + (it) => !it.enabled || !allowedPlugins.includes(it.pluginId) || extraFilter.includes(it.pluginId) ) return pluginFilterTx(excludedPlugins, configs, txes) } diff --git a/packages/client/src/index.ts b/packages/client/src/index.ts index 72d8e3d185..ae6f530020 100644 --- a/packages/client/src/index.ts +++ b/packages/client/src/index.ts @@ -88,6 +88,7 @@ export default plugin(clientId, { metadata: { ClientSocketFactory: '' as Metadata, FilterModel: '' as Metadata, + ExtraFilter: '' as Metadata, ExtraPlugins: '' as Metadata, UseBinaryProtocol: '' as Metadata, UseProtocolCompression: '' as Metadata,