Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion desktop/src/ui/platform.ts
Original file line number Diff line number Diff line change
Expand Up @@ -361,7 +361,9 @@ export async function configurePlatform (onWorkbenchConnect?: () => Promise<void
setMetadata(presentation.metadata.HulylakeUrl, config.HULYLAKE_URL ?? '')
setMetadata(presentation.metadata.PulseUrl, config.PULSE_URL ?? '')

const disabledFeatures = (config.DISABLED_FEATURES ?? '').split(',').map(it => it.trim()).filter(it => it.length > 0)
const disabledFeatures = [...(config.DISABLED_FEATURES ?? '').split(','), ...(myBranding.disabledFeatures ?? '').split(',')]
.map(it => it.trim())
.filter(it => it.length > 0)
setMetadata(presentation.metadata.DisabledFeatures, new Set(disabledFeatures))

setMetadata(textEditor.metadata.Collaborator, config.COLLABORATOR ?? '')
Expand Down
1 change: 1 addition & 0 deletions desktop/src/ui/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ export interface Branding {
languages?: string
lastNameFirst?: string
defaultLanguage?: string
disabledFeatures?: string
defaultApplication?: string
defaultSpace?: string
defaultSpecial?: string
Expand Down
5 changes: 4 additions & 1 deletion dev/prod/src/platform.ts
Original file line number Diff line number Diff line change
Expand Up @@ -223,6 +223,7 @@ export interface Branding {
languages?: string
lastNameFirst?: string
defaultLanguage?: string
disabledFeatures?: string
defaultApplication?: string
defaultSpace?: string
defaultSpecial?: string
Expand Down Expand Up @@ -492,7 +493,9 @@ export async function configurePlatform() {
setMetadata(presentation.metadata.MailUrl, config.MAIL_URL)
setMetadata(presentation.metadata.SignupUrl, config.SIGNUP_URL ?? 'https://huly.io/signup')

const disabledFeatures = (config.DISABLED_FEATURES ??'').split(',').map(it => it.trim()).filter(it => it.length > 0)
const disabledFeatures = [...(config.DISABLED_FEATURES ?? '').split(','), ...(myBranding.disabledFeatures ?? '').split(',')]
.map(it => it.trim())
.filter(it => it.length > 0)
setMetadata(presentation.metadata.DisabledFeatures, new Set(disabledFeatures))

setMetadata(recorder.metadata.StreamUrl, config.STREAM_URL)
Expand Down
18 changes: 18 additions & 0 deletions docs/disableFeatures.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,3 +26,21 @@ Please set a DISABLED_FEATURES environment variable for front service container,
- testManagement - Will disable test management
- process - Will disable process module
- cards - Will disable cards

## Per-branding disabled features

When serving multiple brands/hosts from one installation (see `BRANDING_URL`),
features can also be disabled per host by adding a `disabledFeatures` key
(same comma-separated format) to a branding entry. The lists from
`DISABLED_FEATURES` and the matched branding are merged, so the environment
variable acts as the installation-wide baseline and brandings can only extend
it:

```json
{
"tracker.example-client.com": {
"title": "Example Client Tracker",
"disabledFeatures": "recruit,lead,inventory,training"
}
}
```