Проект создан для упрощения работы с ресурсами 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
Запускает на http://localhost:3000 (либо порт, указанный в конфигурации config.json) http сервер для разработки
с настроенным проксированием запросов на указанный в конфиге сервер. Проксируются все файлы, кроме /srv/resources
которые берутся из папки /src
Проект считывает конфигурацию последовательно из разных источников.
В конфигурацию входят:
server- http адрес сервера, напримерhttp://project.luxmsbi.com/username- имя пользователя для доступа к серверу. Требуются админские праваpassword- пароль для пользователяusernameport- порт для запуска локального сервера дляnpm startforce- выдавать ли предупреждение перед обновлением источникаnoRemove- запрещает удалять файлы, если при синхронизации они не найденыinclude- регулярное выражение для схем, которые следует включить (^ds_\w+$по умолчанию)exclude- регулярное выражение для схем, которые следует исключитьkerberos- http адрес сервера для аутентификации kerberos, напримерHTTP@sso.luxms.comjwt- токен для авторизации (подробнее тут)
Если значения server, username или password нигде не найдены,
то их потребуется ввести с клавиатуры.
noLogin- пропускает аутентификацию в режиме разработки - для работы над окном аутентификации
Последовательно проверяются следующие источники конфигурации:
-
Опции командной строки
При запуске команды можно указать любые из опций:
--server=...--username=...--password=...--port=...--force--no-remove--include=...--exclude=...--kerberos=...--jwt=...
Их необходимо отделять от команды знаком
--yarn push --server=http://project.luxmsbi.com/ --username=admin --password=secret --exclude=ds_res npm start -- --server=http://project.luxmsbi.com/ -
переменные окружения
Те же имена, но должны быть написаны заглавными буквами с префиксом
BI_:BI_SERVERBI_USERNAMEBI_PASSWORDBI_PORTBI_FORCEBI_NO_REMOVEBI_INCLUDEBI_EXCLUDEBI_JWT
Например:
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-
Файлы конфигурации
В корне проекта лежит файл
config.json, который хранит значение конфигурации server{ "server": "http://project.luxmsbi.com/" }Этот файл должен лежать в каждой ветке проекта и указывать корректный сервер
Можно создать в корне проекта файл
authConfig.jsonи в нем указать имя пользователя и пароль или jwt токен{ "username": "admin", "password": "secret", "jwt": "secret-token" }Этот файл занесен в
.gitignoreи не должен попасть в git.Для работы с разными проектами можно в файл authConfig занести разные записи, для каждой ветки. Ключем является название ветки git, значениями -
username,passwordилиjwt{ "project1": { "username": "project1admin", "password": "secret" }, "project2": { "username": "project2admin", "password": "secret2" } }Приложение будет брать соответствующий конфиг по названию текущей ветки git.
-
Ввод с клавиатуры Если значение не найдено ни одим из предыдущих способов, команды
npm start,npm run pullиnpm run pushзапросят их ввод с клавиатуры
Дает возможность указать удаленный сервер, с которым синхронизировать ресурсы
Способы указать сервер
- Аргументами командной строки:
$ 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
Дает возможность запустить сервер разработки на указанном порту
Например, требуется запустить проект на порту 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