Skip to content

Commit 7523478

Browse files
haiodoArtyomSavchenko
authored andcommitted
Allow ignore billing (#10233)
* Disable billing if no billing url is specified Signed-off-by: Andrey Sobolev <[email protected]> * Add biling URL check Signed-off-by: Andrey Sobolev <[email protected]> --------- Signed-off-by: Andrey Sobolev <[email protected]>
1 parent 8b5c1a1 commit 7523478

File tree

3 files changed

+118
-57
lines changed

3 files changed

+118
-57
lines changed

desktop/src/ui/platform.ts

Lines changed: 91 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -166,23 +166,34 @@ import { uiId } from '@hcengineering/ui/src/plugin'
166166

167167
function configureI18n (): void {
168168
// Add localization
169-
addStringsLoader(platformId, async (lang: string) => await import(
170-
/* webpackInclude: /\.json$/ */
171-
/* webpackMode: "lazy" */
172-
/* webpackChunkName: "lang-[request]" */
173-
`@hcengineering/platform/lang/${lang}.json`
174-
))
175-
addStringsLoader(coreId, async (lang: string) => await import(
176-
/* webpackInclude: /\.json$/ */
177-
/* webpackMode: "lazy" */
178-
/* webpackChunkName: "lang-[request]" */
179-
`@hcengineering/core/lang/${lang}.json`
180-
))
169+
addStringsLoader(
170+
platformId,
171+
async (lang: string) =>
172+
await import(
173+
/* webpackInclude: /\.json$/ */
174+
/* webpackMode: "lazy" */
175+
/* webpackChunkName: "lang-[request]" */
176+
`@hcengineering/platform/lang/${lang}.json`
177+
)
178+
)
179+
addStringsLoader(
180+
coreId,
181+
async (lang: string) =>
182+
await import(
183+
/* webpackInclude: /\.json$/ */
184+
/* webpackMode: "lazy" */
185+
/* webpackChunkName: "lang-[request]" */
186+
`@hcengineering/core/lang/${lang}.json`
187+
)
188+
)
181189
addStringsLoader(
182190
presentationId,
183191
async (lang: string) => await import(`@hcengineering/presentation/lang/${lang}.json`)
184192
)
185-
addStringsLoader(textEditorId, async (lang: string) => await import(`@hcengineering/text-editor-assets/lang/${lang}.json`))
193+
addStringsLoader(
194+
textEditorId,
195+
async (lang: string) => await import(`@hcengineering/text-editor-assets/lang/${lang}.json`)
196+
)
186197
addStringsLoader(uiId, async (lang: string) => await import(`@hcengineering/ui/lang/${lang}.json`))
187198
addStringsLoader(mediaId, async (lang: string) => await import(`@hcengineering/media-assets/lang/${lang}.json`))
188199
addStringsLoader(uploaderId, async (lang: string) => await import(`@hcengineering/uploader-assets/lang/${lang}.json`))
@@ -245,44 +256,69 @@ function configureI18n (): void {
245256
addStringsLoader(documentId, async (lang: string) => await import(`@hcengineering/document-assets/lang/${lang}.json`))
246257
addStringsLoader(timeId, async (lang: string) => await import(`@hcengineering/time-assets/lang/${lang}.json`))
247258
addStringsLoader(githubId, async (lang: string) => await import(`@hcengineering/github-assets/lang/${lang}.json`))
248-
addStringsLoader(documentsId, async (lang: string) => await import(`@hcengineering/controlled-documents-assets/lang/${lang}.json`))
259+
addStringsLoader(
260+
documentsId,
261+
async (lang: string) => await import(`@hcengineering/controlled-documents-assets/lang/${lang}.json`)
262+
)
249263
addStringsLoader(productsId, async (lang: string) => await import(`@hcengineering/products-assets/lang/${lang}.json`))
250-
addStringsLoader(questionsId, async (lang: string) => await import(`@hcengineering/questions-assets/lang/${lang}.json`))
264+
addStringsLoader(
265+
questionsId,
266+
async (lang: string) => await import(`@hcengineering/questions-assets/lang/${lang}.json`)
267+
)
251268
addStringsLoader(trainingId, async (lang: string) => await import(`@hcengineering/training-assets/lang/${lang}.json`))
252269
addStringsLoader(guestId, async (lang: string) => await import(`@hcengineering/guest-assets/lang/${lang}.json`))
253-
addStringsLoader(globalProfileId, async (lang: string) => await import(`@hcengineering/global-profile-assets/lang/${lang}.json`))
270+
addStringsLoader(
271+
globalProfileId,
272+
async (lang: string) => await import(`@hcengineering/global-profile-assets/lang/${lang}.json`)
273+
)
254274
addStringsLoader(loveId, async (lang: string) => await import(`@hcengineering/love-assets/lang/${lang}.json`))
255275
addStringsLoader(printId, async (lang: string) => await import(`@hcengineering/print-assets/lang/${lang}.json`))
256276
addStringsLoader(exportId, async (lang: string) => await import(`@hcengineering/export-assets/lang/${lang}.json`))
257-
addStringsLoader(analyticsCollectorId, async (lang: string) => await import(`@hcengineering/analytics-collector-assets/lang/${lang}.json`))
258-
addStringsLoader(testManagementId, async (lang: string) => await import(`@hcengineering/test-management-assets/lang/${lang}.json`))
277+
addStringsLoader(
278+
analyticsCollectorId,
279+
async (lang: string) => await import(`@hcengineering/analytics-collector-assets/lang/${lang}.json`)
280+
)
281+
addStringsLoader(
282+
testManagementId,
283+
async (lang: string) => await import(`@hcengineering/test-management-assets/lang/${lang}.json`)
284+
)
259285
addStringsLoader(surveyId, async (lang: string) => await import(`@hcengineering/survey-assets/lang/${lang}.json`))
260286
addStringsLoader(cardId, async (lang: string) => await import(`@hcengineering/card-assets/lang/${lang}.json`))
261287
addStringsLoader(mailId, async (lang: string) => await import(`@hcengineering/mail-assets/lang/${lang}.json`))
262288
addStringsLoader(chatId, async (lang: string) => await import(`@hcengineering/chat-assets/lang/${lang}.json`))
263289
addStringsLoader(inboxId, async (lang: string) => await import(`@hcengineering/inbox-assets/lang/${lang}.json`))
264290
addStringsLoader(processId, async (lang: string) => await import(`@hcengineering/process-assets/lang/${lang}.json`))
265-
addStringsLoader(achievementId, async (lang: string) => await import(`@hcengineering/achievement-assets/lang/${lang}.json`))
266-
addStringsLoader(communicationId, async (lang: string) => await import(`@hcengineering/communication-assets/lang/${lang}.json`))
291+
addStringsLoader(
292+
achievementId,
293+
async (lang: string) => await import(`@hcengineering/achievement-assets/lang/${lang}.json`)
294+
)
295+
addStringsLoader(
296+
communicationId,
297+
async (lang: string) => await import(`@hcengineering/communication-assets/lang/${lang}.json`)
298+
)
267299
addStringsLoader(emojiId, async (lang: string) => await import(`@hcengineering/emoji-assets/lang/${lang}.json`))
268300
addStringsLoader(billingId, async (lang: string) => await import(`@hcengineering/billing-assets/lang/${lang}.json`))
269-
addStringsLoader(hulyMailId, async (lang: string) => await import(`@hcengineering/huly-mail-assets/lang/${lang}.json`))
270-
addStringsLoader(aiAssistantId, async (lang: string) => await import(`@hcengineering/ai-assistant-assets/lang/${lang}.json`))
301+
addStringsLoader(
302+
hulyMailId,
303+
async (lang: string) => await import(`@hcengineering/huly-mail-assets/lang/${lang}.json`)
304+
)
305+
addStringsLoader(
306+
aiAssistantId,
307+
async (lang: string) => await import(`@hcengineering/ai-assistant-assets/lang/${lang}.json`)
308+
)
271309
addStringsLoader(ratingId, async (lang: string) => await import(`@hcengineering/rating-assets/lang/${lang}.json`))
272310
}
273311

274312
export class PlatformBranding {
275-
constructor (private readonly title: string) {
276-
}
313+
constructor (private readonly title: string) {}
277314

278315
public getTitle (): string {
279316
return this.title
280317
}
281318
}
282319

283320
export class PlatformParameters {
284-
constructor (private readonly branding: PlatformBranding) {
285-
}
321+
constructor (private readonly branding: PlatformBranding) {}
286322

287323
public getBranding (): PlatformBranding {
288324
return this.branding
@@ -310,7 +346,10 @@ export async function configurePlatform (onWorkbenchConnect?: () => Promise<void
310346
setMetadata(presentation.metadata.UploadURL, config.UPLOAD_URL)
311347
setMetadata(presentation.metadata.UploadURL, config.FILES_URL)
312348
setMetadata(presentation.metadata.DatalakeUrl, config.DATALAKE_URL ?? '')
313-
setMetadata(presentation.metadata.FileStorage, createFileStorage(config.UPLOAD_URL, config.DATALAKE_URL, config.HULYLAKE_URL))
349+
setMetadata(
350+
presentation.metadata.FileStorage,
351+
createFileStorage(config.UPLOAD_URL, config.DATALAKE_URL, config.HULYLAKE_URL)
352+
)
314353
setMetadata(presentation.metadata.CollaboratorUrl, config.COLLABORATOR_URL)
315354
setMetadata(presentation.metadata.PreviewUrl, config.PREVIEW_URL)
316355
setMetadata(presentation.metadata.FrontUrl, config.FRONT_URL)
@@ -360,7 +399,10 @@ export async function configurePlatform (onWorkbenchConnect?: () => Promise<void
360399
setMetadata(billingPlugin.metadata.BillingURL, config.BILLING_URL ?? '')
361400
setMetadata(presentation.metadata.PaymentUrl, config.PAYMENT_URL ?? '')
362401

363-
const languages = myBranding.languages !== undefined && myBranding.languages !== '' ? myBranding.languages.split(',').map((l) => l.trim()) : ['en', 'ru', 'es', 'pt', 'zh', 'fr', 'cs', 'it', 'de', 'ja', 'tr']
402+
const languages =
403+
myBranding.languages !== undefined && myBranding.languages !== ''
404+
? myBranding.languages.split(',').map((l) => l.trim())
405+
: ['en', 'ru', 'es', 'pt', 'zh', 'fr', 'cs', 'it', 'de', 'ja', 'tr']
364406

365407
setMetadata(uiPlugin.metadata.Languages, languages)
366408

@@ -424,30 +466,45 @@ export async function configurePlatform (onWorkbenchConnect?: () => Promise<void
424466
addLocation(githubId, async () => await import(/* webpackChunkName: "github" */ '@hcengineering/github-resources'))
425467
addLocation(
426468
desktopPreferencesId,
427-
async () => await import(/* webpackChunkName: "desktop-preferences" */ '@hcengineering/desktop-preferences-resources')
469+
async () =>
470+
await import(/* webpackChunkName: "desktop-preferences" */ '@hcengineering/desktop-preferences-resources')
428471
)
429472
addLocation(
430473
desktopDownloadsId,
431474
async () => await import(/* webpackChunkName: "desktop-downloads" */ '@hcengineering/desktop-downloads-resources')
432475
)
433476
addLocation(guestId, () => import(/* webpackChunkName: "guest" */ '@hcengineering/guest-resources'))
434-
addLocation(globalProfileId, () => import(/* webpackChunkName: "global-profile" */ '@hcengineering/global-profile-resources'))
477+
addLocation(
478+
globalProfileId,
479+
() => import(/* webpackChunkName: "global-profile" */ '@hcengineering/global-profile-resources')
480+
)
435481
addLocation(loveId, () => import(/* webpackChunkName: "love" */ '@hcengineering/love-resources'))
436482
addLocation(printId, () => import(/* webpackChunkName: "print" */ '@hcengineering/print-resources'))
437483
addLocation(exportId, () => import(/* webpackChunkName: "export" */ '@hcengineering/export-resources'))
438484
addLocation(textEditorId, () => import(/* webpackChunkName: "text-editor" */ '@hcengineering/text-editor-resources'))
439-
addLocation(testManagementId, () => import(/* webpackChunkName: "test-management" */ '@hcengineering/test-management-resources'))
485+
addLocation(
486+
testManagementId,
487+
() => import(/* webpackChunkName: "test-management" */ '@hcengineering/test-management-resources')
488+
)
440489
addLocation(surveyId, () => import(/* webpackChunkName: "survey" */ '@hcengineering/survey-resources'))
441490
addLocation(cardId, () => import(/* webpackChunkName: "card" */ '@hcengineering/card-resources'))
442491
addLocation(chatId, () => import(/* webpackChunkName: "chat" */ '@hcengineering/chat-resources'))
443492
addLocation(inboxId, () => import(/* webpackChunkName: "inbox" */ '@hcengineering/inbox-resources'))
444493
addLocation(processId, () => import(/* webpackChunkName: "process" */ '@hcengineering/process-resources'))
445494
addLocation(achievementId, () => import(/* webpackChunkName: "achievement" */ '@hcengineering/achievement-resources'))
446-
addLocation(communicationId, () => import(/* webpackChunkName: "communication" */ '@hcengineering/communication-resources'))
495+
addLocation(
496+
communicationId,
497+
() => import(/* webpackChunkName: "communication" */ '@hcengineering/communication-resources')
498+
)
447499
addLocation(emojiId, () => import(/* webpackChunkName: "achievement" */ '@hcengineering/emoji-resources'))
448-
addLocation(billingId, () => import(/* webpackChunkName: "billing" */ '@hcengineering/billing-resources'))
500+
if ((config.BILLING_URL ?? '') !== '') {
501+
addLocation(billingId, () => import(/* webpackChunkName: "billing" */ '@hcengineering/billing-resources'))
502+
}
449503
addLocation(hulyMailId, () => import(/* webpackChunkName: "huly-mail" */ '@hcengineering/huly-mail-resources'))
450-
addLocation(aiAssistantId, () => import(/* webpackChunkName: "ai-assistant" */ '@hcengineering/ai-assistant-resources'))
504+
addLocation(
505+
aiAssistantId,
506+
() => import(/* webpackChunkName: "ai-assistant" */ '@hcengineering/ai-assistant-resources')
507+
)
451508
addLocation(ratingId, async () => await import(/* webpackChunkName: "rating" */ '@hcengineering/rating-resources'))
452509

453510
setMetadata(client.metadata.FilterModel, 'ui')

dev/docker-compose.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ services:
147147
deploy:
148148
resources:
149149
limits:
150-
memory: 512m
150+
memory: 1024m
151151
redis:
152152
image: redis:8.0.2-alpine3.21
153153
ports:

dev/prod/src/platform.ts

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -73,8 +73,8 @@ import { mailId } from '@hcengineering/mail'
7373
import { chatId } from '@hcengineering/chat'
7474
import github, { githubId } from '@hcengineering/github'
7575
import { bitrixId } from '@hcengineering/bitrix'
76-
import {inboxId} from '@hcengineering/inbox'
77-
import {achievementId} from '@hcengineering/achievement'
76+
import { inboxId } from '@hcengineering/inbox'
77+
import { achievementId } from '@hcengineering/achievement'
7878
import communication, { communicationId } from '@hcengineering/communication'
7979
import { emojiId } from '@hcengineering/emoji'
8080
import billingPlugin, { billingId } from '@hcengineering/billing'
@@ -143,11 +143,7 @@ import '@hcengineering/ai-assistant-assets'
143143
import '@hcengineering/rating-assets'
144144

145145
import { coreId } from '@hcengineering/core'
146-
import presentation, {
147-
loadServerConfig,
148-
createFileStorage,
149-
presentationId
150-
} from '@hcengineering/presentation'
146+
import presentation, { loadServerConfig, createFileStorage, presentationId } from '@hcengineering/presentation'
151147

152148
import { setMetadata } from '@hcengineering/platform'
153149
import { initThemeStore, setDefaultLanguage } from '@hcengineering/theme'
@@ -268,7 +264,7 @@ const PASSWORD_REQUIREMENTS: Record<NonNullable<Config['PASSWORD_STRICTNESS']>,
268264
}
269265
}
270266

271-
function configureI18n (): void {
267+
function configureI18n(): void {
272268
// Add localization
273269
addStringsLoader(
274270
platformId,
@@ -367,7 +363,10 @@ function configureI18n (): void {
367363
)
368364
addStringsLoader(trainingId, async (lang: string) => await import(`@hcengineering/training-assets/lang/${lang}.json`))
369365
addStringsLoader(guestId, async (lang: string) => await import(`@hcengineering/guest-assets/lang/${lang}.json`))
370-
addStringsLoader(globalProfileId, async (lang: string) => await import(`@hcengineering/global-profile-assets/lang/${lang}.json`))
366+
addStringsLoader(
367+
globalProfileId,
368+
async (lang: string) => await import(`@hcengineering/global-profile-assets/lang/${lang}.json`)
369+
)
371370
addStringsLoader(loveId, async (lang: string) => await import(`@hcengineering/love-assets/lang/${lang}.json`))
372371
addStringsLoader(printId, async (lang: string) => await import(`@hcengineering/print-assets/lang/${lang}.json`))
373372
addStringsLoader(exportId, async (lang: string) => await import(`@hcengineering/export-assets/lang/${lang}.json`))
@@ -406,7 +405,7 @@ function configureI18n (): void {
406405
addStringsLoader(ratingId, async (lang: string) => await import(`@hcengineering/rating-assets/lang/${lang}.json`))
407406
}
408407

409-
export async function configurePlatform () {
408+
export async function configurePlatform() {
410409
setMetadata(platform.metadata.LoadHelper, async (loader) => {
411410
for (let i = 0; i < 5; i++) {
412411
try {
@@ -469,7 +468,10 @@ export async function configurePlatform () {
469468

470469
setMetadata(presentation.metadata.UploadURL, config.UPLOAD_URL)
471470
setMetadata(presentation.metadata.DatalakeUrl, config.DATALAKE_URL)
472-
setMetadata(presentation.metadata.FileStorage, createFileStorage(config.UPLOAD_URL, config.DATALAKE_URL, config.HULYLAKE_URL))
471+
setMetadata(
472+
presentation.metadata.FileStorage,
473+
createFileStorage(config.UPLOAD_URL, config.DATALAKE_URL, config.HULYLAKE_URL)
474+
)
473475
setMetadata(presentation.metadata.CollaboratorUrl, config.COLLABORATOR_URL)
474476

475477
setMetadata(presentation.metadata.FrontUrl, config.FRONT_URL)
@@ -633,7 +635,10 @@ export async function configurePlatform () {
633635
async () => await import(/* webpackChunkName: "documents" */ '@hcengineering/controlled-documents-resources')
634636
)
635637
addLocation(guestId, async () => await import(/* webpackChunkName: "guest" */ '@hcengineering/guest-resources'))
636-
addLocation(globalProfileId, async () => await import(/* webpackChunkName: "global-profile" */ '@hcengineering/global-profile-resources'))
638+
addLocation(
639+
globalProfileId,
640+
async () => await import(/* webpackChunkName: "global-profile" */ '@hcengineering/global-profile-resources')
641+
)
637642
addLocation(loveId, async () => await import(/* webpackChunkName: "love" */ '@hcengineering/love-resources'))
638643
addLocation(printId, async () => await import(/* webpackChunkName: "print" */ '@hcengineering/print-resources'))
639644
addLocation(exportId, async () => await import(/* webpackChunkName: "export" */ '@hcengineering/export-resources'))
@@ -672,7 +677,12 @@ export async function configurePlatform () {
672677
async () => await import(/* webpackChunkName: "communication" */ '@hcengineering/communication-resources')
673678
)
674679
addLocation(emojiId, async () => await import(/* webpackChunkName: "emoji" */ '@hcengineering/emoji-resources'))
675-
addLocation(billingId, async () => await import(/* webpackChunkName: "billing" */ '@hcengineering/billing-resources'))
680+
if ((config.BILLING_URL ?? '') !== '') {
681+
addLocation(
682+
billingId,
683+
async () => await import(/* webpackChunkName: "billing" */ '@hcengineering/billing-resources')
684+
)
685+
}
676686
addLocation(
677687
hulyMailId,
678688
async () => await import(/* webpackChunkName: "hulyMail" */ '@hcengineering/huly-mail-resources')
@@ -681,14 +691,8 @@ export async function configurePlatform () {
681691
aiAssistantId,
682692
async () => await import(/* webpackChunkName: "ai-assistant" */ '@hcengineering/ai-assistant-resources')
683693
)
684-
addLocation(
685-
inboxId,
686-
async () => await import(/* webpackChunkName: "inbox" */ '@hcengineering/inbox-resources')
687-
)
688-
addLocation(
689-
ratingId,
690-
async () => await import(/* webpackChunkName: "rating" */ '@hcengineering/rating-resources')
691-
)
694+
addLocation(inboxId, async () => await import(/* webpackChunkName: "inbox" */ '@hcengineering/inbox-resources'))
695+
addLocation(ratingId, async () => await import(/* webpackChunkName: "rating" */ '@hcengineering/rating-resources'))
692696

693697
setMetadata(client.metadata.FilterModel, 'ui')
694698
setMetadata(client.metadata.ExtraPlugins, ['preference' as Plugin])
@@ -698,7 +702,7 @@ export async function configurePlatform () {
698702
const binaryOverride = localStorage.getItem(client.metadata.UseBinaryProtocol)
699703
setMetadata(
700704
client.metadata.UseBinaryProtocol,
701-
binaryOverride != null ? binaryOverride === 'true' : config.USE_BINARY_PROTOCOL ?? true
705+
binaryOverride != null ? binaryOverride === 'true' : (config.USE_BINARY_PROTOCOL ?? true)
702706
)
703707

704708
// Disable for now, since it causes performance issues on linux/docker/kubernetes boxes for now.

0 commit comments

Comments
 (0)