Fluent Commerce Logo
Docs

fc.mystique.apps

Setting

Changed on:

16 June 2026

Setting AreaUI component
Supported context levels:ACCOUNT

Overview

The `fc.mystique.apps` setting defines the applications available in the Application Switcher. It is used to control application-level navigation and visibility based on user roles and context.The Application Switcher is displayed only when this setting is configured, and the user has access to more than one application.

Values

Data TypeValues
JSON
1{
2  "apps": [
3    {
4      "name": "oms",
5      "label": "fc.mystique.app.oms.label",
6      "context": {
7        "level": "RETAILER",
8        "role": "ADMIN"
9      }
10    },
11    {
12      "name": "inventory",
13      "label": "fc.mystique.app.inventory.label",
14      "context": {
15        "role": [
16          "BASIC",
17          "DEVELOPER"
18        ]
19      }
20    },
21    {
22      "name": "store",
23      "label": "fc.mystique.app.store.label",
24      "context": {
25        "role": [
26          "STORE"
27        ]
28      }
29    },
30     {
31      "name": "analytics",
32      "label": "fc.mystique.app.analytics.label"
33    }
34  ]
35}

Detailed technical description

The `fc.mystique.apps` setting defines which applications are available in the Application Switcher and under which conditions they are visible to users.Each application definition contains the following fields:
  • `name` - identifies the application and is used for routing and navigation
  • `label` - defines the internationalized display name shown in the UI
  • `context` - defines optional application filtering conditions based on user `role` and `context` level:
    • `level` - string value representing the required context level. Valid values: `ACCOUNT`, `RETAILER`, `LOCATION`
    • `role` - string or array of strings representing allowed user roles. Can be omitted or left as an empty string, in which case it is treated as unspecified
For example, the Fluent OMS Web application is displayed in the Application Switcher only when the user has the `ADMIN` role at the `RETAILER` level (context)For each configured application, Mystique evaluates the user’s roles within the active context to determine whether the application should be displayed.Application visibility is evaluated using the following rules:1. If `role` is not specified or is an empty string, but `level` is specified:
  - Mystique checks whether the user has any role assigned at the specified context level
  - only the context level is evaluated
2. If neither `role` nor `level` is specified:
  - the application remains visible
  - no filtering is applied
3. If `role` is specified, but `level` is not specified or is an empty string:
  - Mystique evaluates only the role name
  - the application is displayed if the user has at least one matching role
4. If both `role` and `level` are specified:
  - Mystique evaluates the role and context level together
  - the application is displayed only when the user has the matching role assigned within the matching context level
After filtering is applied, only accessible applications remain available to the user. If more than one application is available, the Application Switcher is displayed in the UI. Otherwise, the component remains hidden.This setting controls application-level visibility only. It does not define:
  • pages or routes within the application
  • data-level access

Configuration example

1POST {{fluentApiHost}}/graphql
2
3mutation CreateSetting {
4   createSetting(input: {
5     name: "fc.mystique.apps",
6     valueType: "JSON",
7     lobValue: $lobValue,
8     context: "ACCOUNT",
9     contextId: 0
10   }) {
11     id
12     name
13   }
14}
15
16GraphQL variables:
17{
18  "lobValue": {
19    "apps": [
20      {
21        "name": "analytics",
22        "label": "fc.mystique.app.analytics.label",
23        "context": {
24          "level": "ACCOUNT",
25          "role": "ANALYTICS_VIEWER"
26        }
27      },
28      {
29        "name": "oms",
30        "label": "fc.mystique.app.oms.label",
31        "context": {
32          "level": "LOCATION",
33          "role": "STORE_ASSISTANT"
34        }
35      },
36      {
37        "name": "inventory",
38        "label": "fc.mystique.app.inventory.label",
39        "context": {
40          "level": "LOCATION",
41          "role": "STORE_ASSISTANT"
42        }
43      }
44    ]
45  }
46}

Update example

1POST {{fluentApiHost}}/graphql
2
3mutation UpdateSetting {
4   updateSetting(input: {
5     name: "fc.mystique.apps",
6     lobValue: $lobValue,
7     context: "ACCOUNT",
8     contextId: 0
9   }) {
10     id
11     name
12   }
13}
14
15GraphQL variables:
16{
17  "lobValue": {
18    "apps": [
19      {
20        "name": "analytics",
21        "label": "fc.mystique.app.analytics.label",
22        "context": {
23          "level": "ACCOUNT",
24          "role": "ANALYTICS_VIEWER"
25        }
26      },
27      {
28        "name": "store",
29        "label": "fc.mystique.app.store.label",
30        "context": {
31          "level": "ACCOUNT",
32          "role": "ADMIN"
33        }
34      }
35    ]
36  }
37}