UBERF-10441: Fix configure and board item displayed (#8788)

Signed-off-by: Andrey Sobolev <haiodo@gmail.com>
This commit is contained in:
Andrey Sobolev 2025-04-30 22:50:59 +07:00 committed by GitHub
parent 917828f9f8
commit 85fc90e26c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
12 changed files with 60 additions and 80 deletions

View File

@ -23,7 +23,7 @@ services:
image: postgres image: postgres
container_name: postgres container_name: postgres
extra_hosts: extra_hosts:
- "host.docker.internal:host-gateway" - 'host.docker.internal:host-gateway'
environment: environment:
- POSTGRES_PASSWORD=example - POSTGRES_PASSWORD=example
volumes: volumes:
@ -98,7 +98,6 @@ services:
- STORAGE_CONFIG=${STORAGE_CONFIG} - STORAGE_CONFIG=${STORAGE_CONFIG}
- FRONT_URL=http://host.docker.internal:8087 - FRONT_URL=http://host.docker.internal:8087
- RESERVED_DB_NAMES=telegram,gmail,github - RESERVED_DB_NAMES=telegram,gmail,github
- MODEL_ENABLED=*
- LAST_NAME_FIRST=true - LAST_NAME_FIRST=true
# - WS_LIVENESS_DAYS=1 # - WS_LIVENESS_DAYS=1
- ACCOUNTS_URL=http://host.docker.internal:3000 - ACCOUNTS_URL=http://host.docker.internal:3000
@ -135,7 +134,6 @@ services:
- MAIL_URL= - MAIL_URL=
- STORAGE_CONFIG=${STORAGE_CONFIG} - STORAGE_CONFIG=${STORAGE_CONFIG}
- RESERVED_DB_NAMES=telegram,gmail,github - RESERVED_DB_NAMES=telegram,gmail,github
- MODEL_ENABLED=*
- ACCOUNTS_URL=http://host.docker.internal:3000 - ACCOUNTS_URL=http://host.docker.internal:3000
- BRANDING_PATH=/var/cfg/branding.json - BRANDING_PATH=/var/cfg/branding.json
# - PARALLEL=2 # - PARALLEL=2
@ -163,7 +161,6 @@ services:
- STORAGE_CONFIG=${STORAGE_CONFIG} - STORAGE_CONFIG=${STORAGE_CONFIG}
- FRONT_URL=http://host.docker.internal:8087 - FRONT_URL=http://host.docker.internal:8087
- RESERVED_DB_NAMES=telegram,gmail,github - RESERVED_DB_NAMES=telegram,gmail,github
- MODEL_ENABLED=*
- ACCOUNTS_URL=http://host.docker.internal:3000 - ACCOUNTS_URL=http://host.docker.internal:3000
- BRANDING_PATH=/var/cfg/branding.json - BRANDING_PATH=/var/cfg/branding.json
# - PARALLEL=2 # - PARALLEL=2
@ -190,7 +187,6 @@ services:
- REGION=cockroach - REGION=cockroach
- STORAGE_CONFIG=${STORAGE_CONFIG} - STORAGE_CONFIG=${STORAGE_CONFIG}
- RESERVED_DB_NAMES=telegram,gmail,github - RESERVED_DB_NAMES=telegram,gmail,github
- MODEL_ENABLED=*
- ACCOUNTS_URL=http://host.docker.internal:3000 - ACCOUNTS_URL=http://host.docker.internal:3000
- BRANDING_PATH=/var/cfg/branding.json - BRANDING_PATH=/var/cfg/branding.json
# - PARALLEL=2 # - PARALLEL=2
@ -503,23 +499,23 @@ services:
- AVATAR_PATH=./avatar.png - AVATAR_PATH=./avatar.png
- AVATAR_CONTENT_TYPE=.png - AVATAR_CONTENT_TYPE=.png
- STATS_URL=http://host.docker.internal:4900 - STATS_URL=http://host.docker.internal:4900
# - LOVE_ENDPOINT=http://host.docker.internal:8096 # - LOVE_ENDPOINT=http://host.docker.internal:8096
# - OPENAI_API_KEY=token # - OPENAI_API_KEY=token
# telegram-bot: # telegram-bot:
# image: hardcoreeng/telegram-bot # image: hardcoreeng/telegram-bot
# extra_hosts: # extra_hosts:
# - "host.docker.internal:host-gateway" # - "host.docker.internal:host-gateway"
# restart: unless-stopped # restart: unless-stopped
# environment: # environment:
# - PORT=4020 # - PORT=4020
# - BOT_TOKEN=token # - BOT_TOKEN=token
# - MONGO_URL=${MONGO_URL} # - MONGO_URL=${MONGO_URL}
# - MONGO_DB=telegram-bot # - MONGO_DB=telegram-bot
# - SECRET=secret # - SECRET=secret
# - DOMAIN=domain # - DOMAIN=domain
# - ACCOUNTS_URL=http://host.docker.internal:3000 # - ACCOUNTS_URL=http://host.docker.internal:3000
# - SERVICE_ID=telegram-bot-service # - SERVICE_ID=telegram-bot-service
# - STATS_URL=http://host.docker.internal:4900 # - STATS_URL=http://host.docker.internal:4900
export: export:
image: hardcoreeng/export image: hardcoreeng/export
extra_hosts: extra_hosts:

View File

@ -46,7 +46,6 @@ services:
- STORAGE_CONFIG=${STORAGE_CONFIG} - STORAGE_CONFIG=${STORAGE_CONFIG}
- FRONT_URL=http://localhost:8087 - FRONT_URL=http://localhost:8087
- RESERVED_DB_NAMES=telegram,gmail,github - RESERVED_DB_NAMES=telegram,gmail,github
- MODEL_ENABLED=*
- LAST_NAME_FIRST=true - LAST_NAME_FIRST=true
- ACCOUNTS_URL=http://localhost:3000 - ACCOUNTS_URL=http://localhost:3000
- BRANDING_PATH=/var/cfg/branding.json - BRANDING_PATH=/var/cfg/branding.json

View File

@ -22,14 +22,15 @@ import { devTool } from '.'
import { addLocation } from '@hcengineering/platform' import { addLocation } from '@hcengineering/platform'
import { serverActivityId } from '@hcengineering/server-activity' import { serverActivityId } from '@hcengineering/server-activity'
import { serverAiBotId } from '@hcengineering/server-ai-bot'
import { serverAttachmentId } from '@hcengineering/server-attachment' import { serverAttachmentId } from '@hcengineering/server-attachment'
import { serverCardId } from '@hcengineering/server-card'
import { serverCalendarId } from '@hcengineering/server-calendar' import { serverCalendarId } from '@hcengineering/server-calendar'
import { serverCardId } from '@hcengineering/server-card'
import { serverChunterId } from '@hcengineering/server-chunter' import { serverChunterId } from '@hcengineering/server-chunter'
import { serverCollaborationId } from '@hcengineering/server-collaboration' import { serverCollaborationId } from '@hcengineering/server-collaboration'
import { serverContactId } from '@hcengineering/server-contact' import { serverContactId } from '@hcengineering/server-contact'
import { serverDriveId } from '@hcengineering/server-drive'
import { serverDocumentId } from '@hcengineering/server-document' import { serverDocumentId } from '@hcengineering/server-document'
import { serverDriveId } from '@hcengineering/server-drive'
import { serverGmailId } from '@hcengineering/server-gmail' import { serverGmailId } from '@hcengineering/server-gmail'
import { serverGuestId } from '@hcengineering/server-guest' import { serverGuestId } from '@hcengineering/server-guest'
import { serverHrId } from '@hcengineering/server-hr' import { serverHrId } from '@hcengineering/server-hr'
@ -45,7 +46,6 @@ import { serverTelegramId } from '@hcengineering/server-telegram'
import { serverTimeId } from '@hcengineering/server-time' import { serverTimeId } from '@hcengineering/server-time'
import { serverTrackerId } from '@hcengineering/server-tracker' import { serverTrackerId } from '@hcengineering/server-tracker'
import { serverViewId } from '@hcengineering/server-view' import { serverViewId } from '@hcengineering/server-view'
import { serverAiBotId } from '@hcengineering/server-ai-bot'
addLocation(serverActivityId, () => import('@hcengineering/server-activity-resources')) addLocation(serverActivityId, () => import('@hcengineering/server-activity-resources'))
addLocation(serverAttachmentId, () => import('@hcengineering/server-attachment-resources')) addLocation(serverAttachmentId, () => import('@hcengineering/server-attachment-resources'))
@ -79,10 +79,7 @@ function prepareTools (): {
version: Data<Version> version: Data<Version>
migrateOperations: [string, MigrateOperation][] migrateOperations: [string, MigrateOperation][]
} { } {
const enabled = (process.env.MODEL_ENABLED ?? '*').split(',').map((it) => it.trim()) return { ...prepareToolsRaw(builder().getTxes()), version: getModelVersion(), migrateOperations }
const disabled = (process.env.MODEL_DISABLED ?? '').split(',').map((it) => it.trim())
return { ...prepareToolsRaw(builder(enabled, disabled).getTxes()), version: getModelVersion(), migrateOperations }
} }
export function getMongoDBUrl (): string { export function getMongoDBUrl (): string {

View File

@ -1,7 +1,5 @@
import { writeFileSync } from 'fs' import { writeFileSync } from 'fs'
import builder from './' import builder from './'
const enabled = (process.env.MODEL_ENABLED ?? '*').split(',').map((it) => it.trim())
const disabled = (process.env.MODEL_DISABLED ?? '').split(',').map((it) => it.trim())
const model = JSON.stringify(builder(enabled, disabled).getTxes()) const model = JSON.stringify(builder().getTxes())
writeFileSync(process.argv[2], model) writeFileSync(process.argv[2], model)

View File

@ -137,7 +137,7 @@ export type { MigrateOperation } from '@hcengineering/model'
* @param disabled - a set of disabled plugins * @param disabled - a set of disabled plugins
* @returns * @returns
*/ */
export default function buildModel (enabled: string[] = ['*'], disabled: string[] = []): Builder { export default function buildModel (): Builder {
const builder = new Builder() const builder = new Builder()
const defaultFilter = [ const defaultFilter = [
@ -303,10 +303,11 @@ export default function buildModel (enabled: string[] = ['*'], disabled: string[
boardModel, boardModel,
boardId, boardId,
{ {
label: undefined, // board.string.ConfigLabel, label: board.string.ConfigLabel,
description: board.string.ConfigDescription, description: board.string.ConfigDescription,
enabled: false, enabled: false,
beta: true, beta: true,
hidden: true,
icon: board.icon.Board, icon: board.icon.Board,
classFilter: defaultFilter classFilter: defaultFilter
} }
@ -315,10 +316,11 @@ export default function buildModel (enabled: string[] = ['*'], disabled: string[
bitrixModel, bitrixModel,
bitrixId, bitrixId,
{ {
label: undefined, // bitrix.string.ConfigLabel, label: bitrix.string.ConfigLabel,
description: bitrix.string.ConfigDescription, description: bitrix.string.ConfigDescription,
enabled: false, enabled: false,
beta: true, beta: true,
hidden: true,
icon: bitrix.icon.Bitrix, icon: bitrix.icon.Bitrix,
classFilter: defaultFilter classFilter: defaultFilter
} }
@ -481,9 +483,7 @@ export default function buildModel (enabled: string[] = ['*'], disabled: string[
pluginId: id, pluginId: id,
transactions: txes.map((it) => it._id), transactions: txes.map((it) => it._id),
...config, ...config,
enabled: enabled: config?.label === undefined || ((config?.enabled ?? true) && !(config.hidden ?? false)),
config?.label === undefined ||
((config?.enabled ?? true) && (enabled.includes(id) || enabled.includes('*')) && !disabled.includes(id)),
beta: config?.beta ?? false beta: config?.beta ?? false
}, },
('plugin-configuration-' + id) as Ref<PluginConfiguration> ('plugin-configuration-' + id) as Ref<PluginConfiguration>

View File

@ -1,6 +1,4 @@
import builder from './' import builder from './'
const enabled = (process.env.MODEL_ENABLED ?? '*').split(',').map((it) => it.trim())
const disabled = (process.env.MODEL_DISABLED ?? '').split(',').map((it) => it.trim())
const model = JSON.stringify(builder(enabled, disabled).getTxes()) const model = JSON.stringify(builder().getTxes())
console.log(model) console.log(model)

View File

@ -235,12 +235,14 @@ export interface PluginConfiguration extends Doc {
pluginId: Plugin pluginId: Plugin
transactions: Ref<Doc>[] transactions: Ref<Doc>[]
// If not set will not be shown in configuration UI
label?: IntlString label?: IntlString
icon?: Asset icon?: Asset
description?: IntlString description?: IntlString
enabled: boolean enabled: boolean
// If set will not be shown in configuration UI or enabled
hidden?: boolean
// If specified, will show beta/testing label in UI. // If specified, will show beta/testing label in UI.
beta: boolean beta: boolean

View File

@ -36,7 +36,7 @@
<Scroller align={'center'} padding={'var(--spacing-3)'} bottomPadding={'var(--spacing-3)'}> <Scroller align={'center'} padding={'var(--spacing-3)'} bottomPadding={'var(--spacing-3)'}>
<div class="flex-row-center flex-wrap gap-around-4"> <div class="flex-row-center flex-wrap gap-around-4">
{#each $pluginConfigurationStore.list as config} {#each $pluginConfigurationStore.list as config}
{#if config.label} {#if config.label && !(config.hidden ?? false)}
<div class="cardBox flex-col clear-mins" class:enabled={config.enabled ?? true}> <div class="cardBox flex-col clear-mins" class:enabled={config.enabled ?? true}>
<div class="flex-row-center"> <div class="flex-row-center">
<span class="mr-2"> <span class="mr-2">

View File

@ -9,10 +9,7 @@ import { initStatisticsContext, loadBrandingMap } from '@hcengineering/server-co
import { serveWorkspaceAccount } from '@hcengineering/workspace-service' import { serveWorkspaceAccount } from '@hcengineering/workspace-service'
import { join } from 'path' import { join } from 'path'
const enabled = (process.env.MODEL_ENABLED ?? '*').split(',').map((it) => it.trim()) const txes = JSON.parse(JSON.stringify(builder().getTxes())) as Tx[]
const disabled = (process.env.MODEL_DISABLED ?? '').split(',').map((it) => it.trim())
const txes = JSON.parse(JSON.stringify(builder(enabled, disabled).getTxes())) as Tx[]
configureAnalytics(process.env.SENTRY_DSN, {}) configureAnalytics(process.env.SENTRY_DSN, {})
Analytics.setTag('application', 'workspace') Analytics.setTag('application', 'workspace')

View File

@ -1,9 +1,9 @@
version: "3" version: '3'
services: services:
mongodb: mongodb:
image: 'mongo:7-jammy' image: 'mongo:7-jammy'
extra_hosts: extra_hosts:
- "host.docker.internal:host-gateway" - 'host.docker.internal:host-gateway'
command: mongod --port 27018 command: mongod --port 27018
environment: environment:
- PUID=1000 - PUID=1000
@ -41,7 +41,7 @@ services:
account: account:
image: hardcoreeng/account image: hardcoreeng/account
extra_hosts: extra_hosts:
- "host.docker.internal:host-gateway" - 'host.docker.internal:host-gateway'
pull_policy: never pull_policy: never
links: links:
- mongodb - mongodb
@ -57,12 +57,11 @@ services:
- DB_URL=mongodb://mongodb:27018 - DB_URL=mongodb://mongodb:27018
- TRANSACTOR_URL=ws://transactor:3334;ws://host.docker.internal:3334 - TRANSACTOR_URL=ws://transactor:3334;ws://host.docker.internal:3334
- STORAGE_CONFIG=${STORAGE_CONFIG} - STORAGE_CONFIG=${STORAGE_CONFIG}
- MODEL_ENABLED=*
- BRANDING_PATH=/var/cfg/branding-test.json - BRANDING_PATH=/var/cfg/branding-test.json
workspace: workspace:
image: hardcoreeng/workspace image: hardcoreeng/workspace
extra_hosts: extra_hosts:
- "host.docker.internal:host-gateway" - 'host.docker.internal:host-gateway'
links: links:
- mongodb - mongodb
- minio - minio
@ -74,14 +73,13 @@ services:
- MONGO_URL=mongodb://mongodb:27018 - MONGO_URL=mongodb://mongodb:27018
- TRANSACTOR_URL=ws://transactor:3334;ws://host.docker.internal:3334 - TRANSACTOR_URL=ws://transactor:3334;ws://host.docker.internal:3334
- STORAGE_CONFIG=${STORAGE_CONFIG} - STORAGE_CONFIG=${STORAGE_CONFIG}
- MODEL_ENABLED=*
- ACCOUNTS_URL=http://account:3003 - ACCOUNTS_URL=http://account:3003
- BRANDING_PATH=/var/cfg/branding.json - BRANDING_PATH=/var/cfg/branding.json
restart: unless-stopped restart: unless-stopped
front: front:
image: hardcoreeng/front image: hardcoreeng/front
extra_hosts: extra_hosts:
- "host.docker.internal:host-gateway" - 'host.docker.internal:host-gateway'
pull_policy: never pull_policy: never
links: links:
- account - account
@ -112,7 +110,7 @@ services:
transactor: transactor:
image: hardcoreeng/transactor image: hardcoreeng/transactor
extra_hosts: extra_hosts:
- "host.docker.internal:host-gateway" - 'host.docker.internal:host-gateway'
pull_policy: never pull_policy: never
links: links:
- mongodb - mongodb
@ -140,7 +138,7 @@ services:
collaborator: collaborator:
image: hardcoreeng/collaborator image: hardcoreeng/collaborator
extra_hosts: extra_hosts:
- "host.docker.internal:host-gateway" - 'host.docker.internal:host-gateway'
links: links:
- mongodb - mongodb
- minio - minio
@ -163,7 +161,7 @@ services:
print: print:
image: hardcoreeng/print image: hardcoreeng/print
extra_hosts: extra_hosts:
- "host.docker.internal:host-gateway" - 'host.docker.internal:host-gateway'
restart: unless-stopped restart: unless-stopped
ports: ports:
- 4003:4005 - 4003:4005
@ -179,7 +177,7 @@ services:
sign: sign:
image: hardcoreeng/sign image: hardcoreeng/sign
extra_hosts: extra_hosts:
- "host.docker.internal:host-gateway" - 'host.docker.internal:host-gateway'
restart: unless-stopped restart: unless-stopped
ports: ports:
- 4008:4006 - 4008:4006

View File

@ -18,7 +18,7 @@ services:
restart: unless-stopped restart: unless-stopped
healthcheck: healthcheck:
#CHANGE 1: this command checks if the database is ready, right on the source db server #CHANGE 1: this command checks if the database is ready, right on the source db server
test: [ "CMD-SHELL", "pg_isready" ] test: ['CMD-SHELL', 'pg_isready']
interval: 5s interval: 5s
timeout: 5s timeout: 5s
retries: 5 retries: 5
@ -62,7 +62,6 @@ services:
- DB_URL=mongodb://mongodb:27018 - DB_URL=mongodb://mongodb:27018
- TRANSACTOR_URL=ws://transactor:3334;ws://localhost:3334 - TRANSACTOR_URL=ws://transactor:3334;ws://localhost:3334
- STORAGE_CONFIG=${STORAGE_CONFIG} - STORAGE_CONFIG=${STORAGE_CONFIG}
- MODEL_ENABLED=*
- BRANDING_PATH=/var/cfg/branding.json - BRANDING_PATH=/var/cfg/branding.json
- STATS_URL=http://stats:4901 - STATS_URL=http://stats:4901
workspace: workspace:
@ -78,7 +77,6 @@ services:
- DB_URL=mongodb://mongodb:27018 - DB_URL=mongodb://mongodb:27018
- TRANSACTOR_URL=ws://transactor:3334;ws://localhost:3334 - TRANSACTOR_URL=ws://transactor:3334;ws://localhost:3334
- STORAGE_CONFIG=${STORAGE_CONFIG} - STORAGE_CONFIG=${STORAGE_CONFIG}
- MODEL_ENABLED=*
- ACCOUNTS_URL=http://account:3003 - ACCOUNTS_URL=http://account:3003
- BRANDING_PATH=/var/cfg/branding.json - BRANDING_PATH=/var/cfg/branding.json
- STATS_URL=http://stats:4901 - STATS_URL=http://stats:4901

View File

@ -69,7 +69,6 @@ services:
- DB_URL=mongodb://huly.local:27018 - DB_URL=mongodb://huly.local:27018
- TRANSACTOR_URL=ws://huly.local:3334;ws://huly.local:3334,ws://huly.local:3335;ws://huly.local:3335;europe, - TRANSACTOR_URL=ws://huly.local:3334;ws://huly.local:3334,ws://huly.local:3335;ws://huly.local:3335;europe,
- STORAGE_CONFIG=${STORAGE_CONFIG} - STORAGE_CONFIG=${STORAGE_CONFIG}
- MODEL_ENABLED=*
- BRANDING_PATH=/var/cfg/branding.json - BRANDING_PATH=/var/cfg/branding.json
- STATS_URL=http://huly.local:4901 - STATS_URL=http://huly.local:4901
workspace: workspace:
@ -86,7 +85,6 @@ services:
- SERVER_SECRET=secret - SERVER_SECRET=secret
- DB_URL=${DB_URL} - DB_URL=${DB_URL}
- STORAGE_CONFIG=${STORAGE_CONFIG} - STORAGE_CONFIG=${STORAGE_CONFIG}
- MODEL_ENABLED=*
- REGION= - REGION=
- ACCOUNTS_URL=http://huly.local:3003 - ACCOUNTS_URL=http://huly.local:3003
- BRANDING_PATH=/var/cfg/branding.json - BRANDING_PATH=/var/cfg/branding.json
@ -110,7 +108,6 @@ services:
- SERVER_SECRET=secret - SERVER_SECRET=secret
- DB_URL=${DB_EU_URL} - DB_URL=${DB_EU_URL}
- STORAGE_CONFIG=${STORAGE_CONFIG} - STORAGE_CONFIG=${STORAGE_CONFIG}
- MODEL_ENABLED=*
- ACCOUNTS_URL=http://huly.local:3003 - ACCOUNTS_URL=http://huly.local:3003
- BRANDING_PATH=/var/cfg/branding.json - BRANDING_PATH=/var/cfg/branding.json
- STATS_URL=http://huly.local:4901 - STATS_URL=http://huly.local:4901