Кастомизация пользовательского интерфейса происходит подключением к приложению внешних модулей пользователя. Внешние модули содержат список точек расширения, которые могут дополнять/изменять поведение приложения.
В качестве примера кастомизации, в шапку приложения будет добавлена кнопка,
используя точку расширения RightHeaderItem:
Создать директорию проекта <projectRoot> и перейти в неё.
Создать внешний модуль <projectRoot>/custom.js:
const {Platform, Vendor} = window.Universe;
const {Uikit, Locale} = Platform;
Locale.i18n.addResourceBundle(Locale.Locales.Ru, {HeaderButton: {text: 'Нажми меня!'}});
Locale.i18n.addResourceBundle(Locale.Locales.En, {HeaderButton: {text: 'Click me!'}});
export class HeaderButton extends Vendor.React.Component {
    render() {
        return (
            Vendor.React.createElement(
                Uikit.Button,
                {intent: Uikit.INTENT.DANGER},
                Locale.i18n.t('HeaderButton>text')
            )
        );
    }
}
export default {
    userExits: [
        {
            type: 'RightHeaderItem',
            moduleId: 'uniqueId',
            active:true,
            system: false,
            resolver: () => true,
            meta: {
                order: 1,
            },
            component: HeaderButton,
        }
    ]
};
В данном примере внешний модуль написан на чистом JavaScript, для быстрого подключения его к приложению, без дополнительных шагов сборки. Если есть необходимость использовать TypeScript, JSX, и подключение сторонних библиотек, то следует обратиться к разделу Сборка внешних модулей.
Создать и настроить конфигурационный файл <projectRoot>/customer.json:
{
    "APP_TYPE": [],
    "serverUrl": "/universe-backend/api/",
    "EXTERNAL_MODULES": [
        "./CUX/custom.js"
    ]
}
В свойстве EXTERNAL_MODULE указываются пути к внешним модулям, относительно корневой директории приложения
в docker-контейнере: /usr/share/nginx/html/.
Запустить docker-контейнер приложения:
docker run %{APP_DOCKER_IMAGE}% \
    -p '80:80' \
    -v ./customer.json:/usr/share/nginx/html/customer.json \
    -v ./custom.js:/usr/share/nginx/html/CUX/custom.js\
    -e BACKEND_ADDRESS=$BACKEND_ADDRESS 
Где $BACKEND_ADDRESS - Адрес запущенного бэкенда системы (например: http://localhost:8080)
Внутри docker-контейнера:
/usr/share/nginx/html/customer.json - Путь к файлу конфигурации приложения/usr/share/nginx/html/CUX/ - Рекомендуемая директория для расположения внешних модулейПриложение будет доступно по адресу: http://localhost. После запуска приложения, добавленную точку расширения можно увидеть в правом углу шапки.