bi-magic-resources
Редактор ресурсов Luxms BI
Описание
Проект создан для упрощения работы с ресурсами Luxms BI и для организации их хранения в репозитории.
Для каждого проекта создается своя ветка, которая будет хранить все ресурсные файлы, их историю и скрипты для синхронизации
Сценарий использования
Требования:
- Наличие админского имени пользователя и пароля для доступа к Luxms BI
-
Перейдите в ветку проекта
git checkout <project_name> -
Установите зависимости
yarn installили
npm install -
Запустите командуnpm run pullкоторая скачает с сервера последнюю версию ресурсов (потребуются имя пользователя и пароль). Если ресурсы на сервере отличаются от локальных, будет выведен список изменений и ожидаться подтверждение перезаписи локальных файлов -
Запустите проект
yarn startили
npm start -
Зайдите браузером по адресу http://localhost:3000 (или другой порт, указанный в файле config.json) будет доступен сервер проекта, но файлы ресурсов будут браться из папки
проекта/src -
Работайте над файлами в папке
и проверяйте их работу в браузере./src -
По окончании закоммитьте код в git-репозиторий и выполните команду
yarn pushили
npm run pushДля отправки изменений в ресурсы сервера. Потребуются имя пользователя и пароль. Команда выведет список измененных файлов и запросит подтверждение их отправки на сервер.
Команды
Реализованы три команды
yarn pull
npm run pull
Все ресурсы с сервера будут скачены в папку `/src' проекта. Лишние локальные файлы будут удалены.
Команда запросит имя пользователя и пароль (если не указаны к конфиге), сравнит ресурсы сервера с
локальными файлами, напечатает список измененных файлов и запросит подтверждение.
yarn push
npm run push
Заливает все локальные файлы на сервер. Отсутствующие локально файлы будут удалены на сервере.
Команда запросит имя пользователя и пароль (если не указаны в конфиге), сравнит локальные файлы с серверными, напечатает список измененных файлов и запросит подтверждение.
yarn start
npm start
Запускает на
(либо порт, указанный в конфигурации config.json) http сервер для разработки
с настроенным проксированием запросов на указанный в конфиге сервер. Проксируются все файлы, кроме
которые берутся из папки
Конфигурация
Проект считывает конфигурацию последовательно из разных источников.
В конфигурацию входят:
- http адрес сервера, напримерserverhttp://project.luxmsbi.com/
- имя пользователя для доступа к серверу. Требуются админские праваusername
- пароль для пользователяpasswordusername
- порт для запуска локального сервера дляportnpm start
- выдавать ли предупреждение перед обновлением источникаforce
- запрещает удалять файлы, если при синхронизации они не найденыnoRemove
- регулярное выражение для схем, которые следует включить (include
по умолчанию)^ds_\w+$
- регулярное выражение для схем, которые следует исключитьexclude
- http адрес сервера для аутентификации kerberos, напримерkerberosHTTP@sso.luxms.com
Если значения
,
или
нигде не найдены,
то их потребуется ввести с клавиатуры.
Вспомогательные опции
- пропускает аутентификацию в режиме разработки - для работы над окном аутентификацииnoLogin
Источники конфигурации
Последовательно проверяются следующие источники конфигурации:
-
Опции командной строки
При запуске команды можно указать любые из опций:
- --server=...
- --username=...
- --password=...
- --port=...
- --force
- --no-remove
- --include=...
- --exclude=...
- --kerberos=...
Их необходимо отделять от команды знаком
--yarn push --server=http://project.luxmsbi.com/ --username=admin --password=secret --exclude=ds_res npm start -- --server=http://project.luxmsbi.com/ -
переменные окружения
Те же имена, но должны быть написаны заглавными буквами с префиксом
:BI_- BI_SERVER
- BI_USERNAME
- BI_PASSWORD
- BI_PORT
- BI_FORCE
- BI_NO_REMOVE
- BI_INCLUDE
- BI_EXCLUDE
Например:
BI_SERVER=http://project.luxmsbi.com/ npm start BI_FORCE=yes BI_EXCLUDE=ds_res npm startexport BI_USERNAME=admin export BI_PASSWORD=secret npm run push -
Файлы конфигурации
В корне проекта лежит файл
, который хранит значение конфигурации serverconfig.json{ "server": "http://project.luxmsbi.com/" }Этот файл должен лежать в каждой ветке проекта и указывать корректный сервер
Можно создать в корне проекта файл
и в нем указать имя пользователя и парольauthConfig.json{ "username": "admin", "password": "secret" }Этот файл занесен в
и не должен попасть в git..gitignoreДля работы с разными проектами можно в файл authConfig занести разные записи, для каждой ветки. Ключем является название ветки git, значениями -
иusernamepassword{"project1": {"username": "project1admin","password": "secret"},"project2": {"username": "project2admin","password": "secret2"}}Приложение будет брать соответствующий конфиг по названию текущей ветки git.
-
Ввод с клавиатуры Если значение не найдено ни одим из предыдущих способов, команды
,npm start
иnpm run pull
запросят их ввод с клавиатурыnpm run push
Примеры
server
Дает возможность указать удаленный сервер, с которым синхронизировать ресурсы
Способы указать сервер
- Аргументами командной строки:
$ yarn push --server=http://project.luxmsbi.com:8000/
$ npm run push -- --server=http://project.luxmsbi.com:8000/
- Через переменную окружения
$ export BI_SERVER=http://project.luxmsbi.com:8000/
$ yarn push
$ BI_SERVER=http://project.luxmsbi.com:8000/ yarn push
- Через конфиг файл
$ cat config.json
{
"server": "http://project.luxmsbi.com:8000/"
}
$ yarn push
port
Дает возможность запустить сервер разработки на указанном порту
Например, требуется запустить проект на порту 8080, вместо порта из config.json (3000 если не указан)
$ yarn start --port=8080
$ BI_PORT=8080 yarn start
$ cat config.json
{
"server": "http://project.luxmsbi.com",
"port": 8080
}
$ yarn start