Skip to content

Commit

Permalink
CF Transactor
Browse files Browse the repository at this point in the history
Signed-off-by: Andrey Sobolev <[email protected]>
  • Loading branch information
haiodo committed Oct 25, 2024
1 parent 34d1b2b commit d73373a
Show file tree
Hide file tree
Showing 32 changed files with 1,493 additions and 454 deletions.
178 changes: 116 additions & 62 deletions common/config/rush/pnpm-lock.yaml

Large diffs are not rendered by default.

2 changes: 2 additions & 0 deletions dev/docker-compose.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,8 @@ services:
postgres:
image: postgres
container_name: postgres
extra_hosts:
- "host.docker.internal:host-gateway"
environment:
- POSTGRES_PASSWORD=example
volumes:
Expand Down
1 change: 1 addition & 0 deletions dev/prod/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
"analyze": "cross-env NODE_ENV=production webpack --json > stats.json",
"show": "webpack-bundle-analyzer stats.json dist",
"dev-server": "cross-env USE_CACHE=false CLIENT_TYPE=dev-server webpack serve",
"dev-worker": "cross-env USE_CACHE=false CLIENT_TYPE=dev-worker webpack serve",
"dev-server-cache": "cross-env USE_CACHE=true CLIENT_TYPE=dev-server webpack serve",
"tunnel-qms": "socat tcp-listen:8081,reuseaddr,fork,bind=localhost tcp:localhost:8080",
"dev-production": "cross-env CLIENT_TYPE=dev-production webpack serve",
Expand Down
21 changes: 21 additions & 0 deletions dev/prod/public/config-worker.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
{
"ACCOUNTS_URL":"/account",
"COLLABORATOR_URL": "ws://localhost:3078",
"UPLOAD_URL":"/files",
"TELEGRAM_URL": "http://localhost:8086",
"GMAIL_URL": "http://localhost:8088",
"CALENDAR_URL": "http://localhost:8095",
"REKONI_URL": "/rekoni",
"GITHUB_APP": "uberflow-dev",
"GITHUB_CLIENTID": "Iv1.43f9cac43bd68617",
"GITHUB_URL":"http://localhost:3500",
"LAST_NAME_FIRST": "true",
"PRINT_URL": "http://localhost:4005",
"SIGN_URL": "http://localhost:4006",
"ANALYTICS_COLLECTOR_URL": "http://localhost:4017",
"AI_URL": "http://localhost:4010",
"BRANDING_URL": "/branding.json",
"VERSION": null,
"MODEL_VERSION": null,
"TRANSACTOR_OVERRIDE": "ws://host.docker.internal:3335"
}
74 changes: 39 additions & 35 deletions dev/prod/src/platform.ts
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,17 @@
import platform, { Plugin, addLocation, addStringsLoader, platformId } from '@hcengineering/platform'

import { activityId } from '@hcengineering/activity'
import aiBot, { aiBotId } from '@hcengineering/ai-bot'
import analyticsCollector, { analyticsCollectorId } from '@hcengineering/analytics-collector'
import { attachmentId } from '@hcengineering/attachment'
import { boardId } from '@hcengineering/board'
import calendar, { calendarId } from '@hcengineering/calendar'
import { chunterId } from '@hcengineering/chunter'
import client, { clientId } from '@hcengineering/client'
import contactPlugin, { contactId } from '@hcengineering/contact'
import { documentsId } from '@hcengineering/controlled-documents'
import { desktopPreferencesId } from '@hcengineering/desktop-preferences'
import { diffviewId } from '@hcengineering/diffview'
import { documentId } from '@hcengineering/document'
import { driveId } from '@hcengineering/drive'
import gmail, { gmailId } from '@hcengineering/gmail'
Expand All @@ -31,45 +36,44 @@ import { imageCropperId } from '@hcengineering/image-cropper'
import { inventoryId } from '@hcengineering/inventory'
import { leadId } from '@hcengineering/lead'
import login, { loginId } from '@hcengineering/login'
import love, { loveId } from '@hcengineering/love'
import notification, { notificationId } from '@hcengineering/notification'
import onboard, { onboardId } from '@hcengineering/onboard'
import print, { printId } from '@hcengineering/print'
import { productsId } from '@hcengineering/products'
import { questionsId } from '@hcengineering/questions'
import { recruitId } from '@hcengineering/recruit'
import rekoni from '@hcengineering/rekoni'
import { requestId } from '@hcengineering/request'
import { settingId } from '@hcengineering/setting'
import sign from '@hcengineering/sign'
import { supportId } from '@hcengineering/support'
import { tagsId } from '@hcengineering/tags'
import { taskId } from '@hcengineering/task'
import telegram, { telegramId } from '@hcengineering/telegram'
import { templatesId } from '@hcengineering/templates'
import textEditor, { textEditorId } from '@hcengineering/text-editor'
import { timeId } from '@hcengineering/time'
import tracker, { trackerId } from '@hcengineering/tracker'
import { trainingId } from '@hcengineering/training'
import uiPlugin from '@hcengineering/ui'
import { uploaderId } from '@hcengineering/uploader'
import { viewId } from '@hcengineering/view'
import workbench, { workbenchId } from '@hcengineering/workbench'
import love, { loveId } from '@hcengineering/love'
import print, { printId } from '@hcengineering/print'
import sign from '@hcengineering/sign'
import { desktopPreferencesId } from '@hcengineering/desktop-preferences'
import { diffviewId } from '@hcengineering/diffview'
import { productsId } from '@hcengineering/products'
import { questionsId } from '@hcengineering/questions'
import { trainingId } from '@hcengineering/training'
import { documentsId } from '@hcengineering/controlled-documents'
import textEditor, { textEditorId } from '@hcengineering/text-editor'
import analyticsCollector, {analyticsCollectorId} from '@hcengineering/analytics-collector'
import { uploaderId } from '@hcengineering/uploader'
import aiBot, { aiBotId } from '@hcengineering/ai-bot'

import { bitrixId } from '@hcengineering/bitrix'

import '@hcengineering/activity-assets'
import '@hcengineering/analytics-collector-assets'
import '@hcengineering/attachment-assets'
import '@hcengineering/bitrix-assets'
import '@hcengineering/board-assets'
import '@hcengineering/calendar-assets'
import '@hcengineering/chunter-assets'
import '@hcengineering/contact-assets'
import '@hcengineering/controlled-documents-assets'
import '@hcengineering/desktop-preferences-assets'
import '@hcengineering/diffview-assets'
import '@hcengineering/document-assets'
import '@hcengineering/drive-assets'
import '@hcengineering/gmail-assets'
Expand All @@ -78,8 +82,12 @@ import '@hcengineering/hr-assets'
import '@hcengineering/inventory-assets'
import '@hcengineering/lead-assets'
import '@hcengineering/login-assets'
import '@hcengineering/love-assets'
import '@hcengineering/notification-assets'
import '@hcengineering/preference-assets'
import '@hcengineering/print-assets'
import '@hcengineering/products-assets'
import '@hcengineering/questions-assets'
import '@hcengineering/recruit-assets'
import '@hcengineering/request-assets'
import '@hcengineering/setting-assets'
Expand All @@ -88,21 +96,13 @@ import '@hcengineering/tags-assets'
import '@hcengineering/task-assets'
import '@hcengineering/telegram-assets'
import '@hcengineering/templates-assets'
import '@hcengineering/text-editor-assets'
import '@hcengineering/time-assets'
import '@hcengineering/tracker-assets'
import '@hcengineering/view-assets'
import '@hcengineering/workbench-assets'
import '@hcengineering/love-assets'
import '@hcengineering/print-assets'
import '@hcengineering/desktop-preferences-assets'
import '@hcengineering/diffview-assets'
import '@hcengineering/questions-assets'
import '@hcengineering/training-assets'
import '@hcengineering/products-assets'
import '@hcengineering/controlled-documents-assets'
import '@hcengineering/analytics-collector-assets'
import '@hcengineering/text-editor-assets'
import '@hcengineering/uploader-assets'
import '@hcengineering/view-assets'
import '@hcengineering/workbench-assets'

import github, { githubId } from '@hcengineering/github'
import '@hcengineering/github-assets'
Expand All @@ -116,12 +116,12 @@ import presentation, {
} from '@hcengineering/presentation'

import { setMetadata } from '@hcengineering/platform'
import { setDefaultLanguage, initThemeStore } from '@hcengineering/theme'
import { initThemeStore, setDefaultLanguage } from '@hcengineering/theme'

import { Analytics } from '@hcengineering/analytics'
import { preferenceId } from '@hcengineering/preference'
import { uiId } from '@hcengineering/ui/src/plugin'
import { configureAnalytics } from './analytics'
import { Analytics } from '@hcengineering/analytics'

export interface Config {
ACCOUNTS_URL: string
Expand Down Expand Up @@ -156,6 +156,8 @@ export interface Config {
FRONT_URL?: string
PREVIEW_CONFIG?: string
UPLOAD_CONFIG?: string

TRANSACTOR_OVERRIDE?: string
}

export interface Branding {
Expand All @@ -177,9 +179,14 @@ export interface Branding {

export type BrandingMap = Record<string, Branding>

const devConfig = process.env.CLIENT_TYPE === 'dev-production'
const devConfigHuly = process.env.CLIENT_TYPE === 'dev-huly'
const devConfigBold = process.env.CLIENT_TYPE === 'dev-bold'
const clientType = process.env.CLIENT_TYPE
const configs: Record<string, string> = {
'dev-production': '/config-dev.json',
'dev-huly': '/config-huly.json',
'dev-bold': '/config.json',
'dev-server': '/config.json',
'dev-worker': '/config-worker.json',
}

function configureI18n(): void {
//Add localization
Expand Down Expand Up @@ -248,12 +255,7 @@ export async function configurePlatform() {
})
configureI18n()

const config: Config = await loadServerConfig(
devConfigHuly
? '/config-huly.json' : (
devConfigBold ? '/config-bold.json' : (
devConfig ? '/config-dev.json' : '/config.json'))
)
const config: Config = await loadServerConfig( configs[clientType] ?? '/config.json')
const branding: BrandingMap = config.BRANDING_URL !== undefined ? await (await fetch(config.BRANDING_URL)).json() : {}
const myBranding = branding[window.location.host] ?? {}

Expand Down Expand Up @@ -293,6 +295,7 @@ export async function configurePlatform() {

setMetadata(login.metadata.AccountsUrl, config.ACCOUNTS_URL)
setMetadata(login.metadata.DisableSignUp, config.DISABLE_SIGNUP === 'true')

setMetadata(presentation.metadata.FilesURL, config.FILES_URL)
setMetadata(presentation.metadata.UploadURL, config.UPLOAD_URL)
setMetadata(presentation.metadata.CollaboratorUrl, config.COLLABORATOR_URL)
Expand Down Expand Up @@ -400,6 +403,7 @@ export async function configurePlatform() {

setMetadata(client.metadata.FilterModel, 'ui')
setMetadata(client.metadata.ExtraPlugins, ['preference' as Plugin])
setMetadata(login.metadata.TransactorOverride, config.TRANSACTOR_OVERRIDE)

// Use binary response transfer for faster performance and small transfer sizes.
setMetadata(client.metadata.UseBinaryProtocol, true)
Expand Down
Loading

0 comments on commit d73373a

Please sign in to comment.