test-databases — только демобазы из реестра
Запуск скрипта
Основной запуск на Linux выполняется Python 3 с аргументами CLI скрипта:
bashpython3 "<skills-root>/test-databases/scripts/resolve-registry.py" -RegistryPath <private-registry.json>
Windows PowerShell остаётся отдельным вариантом запуска:
powershellpowershell.exe -NoProfile -File "<skills-root>/test-databases/scripts/resolve-registry.ps1" -RegistryPath <private-registry.json>
Главное правило
Работай только с демобазами из реестра, разрешённого bundled-скриптом этого скила.
- Не используй
ibases.v8i, списки баз из конфигуратора, произвольные строки подключения и «боевые» базы, если их нет в реестре. - Не придумывай
Srvr,Ref, логин и пароль — бери их только из записи реестра. - Если нужной базы нет в реестре — остановись, сообщи пользователю и предложи добавить запись в
test-databases.json. Не подключайся к другой базе «по аналогии».
Этот скил имеет приоритет над локальными .env, .v8-project.json и любыми другими источниками подключения, если они противоречат реестру или содержат базу вне списка.
Разрешение реестра
Не угадывай путь и не копируй алгоритм разрешения в другие скилы.
Linux — основной backend:
bashpython3 <skills-root>/test-databases/scripts/resolve-registry.py python3 <skills-root>/test-databases/scripts/resolve-registry.py \ -RegistryPath <private-registry.json>
Windows PowerShell — отдельный вариант:
powershellpowershell.exe -NoProfile -File <skills-root>/test-databases/scripts/resolve-registry.ps1
Resolver использует первый настроенный источник:
-RegistryPathдля явного override;CODEX_1C_TEST_DATABASESдля CI и временных окружений;testDatabasesPathиз приватного<CODEX_HOME>/1c/local.json; еслиCODEX_HOMEне задан, используй.codex/1c/local.jsonв домашнем каталоге текущего пользователя.
Локальный файл находится вне репозитория и имеет вид:
json{ "testDatabasesPath": "<private-path>/test-databases.json" }
Resolver возвращает проверенный абсолютный путь и валидирует наличие массива databases. Если он завершился с ошибкой, остановись и сообщи, что реестр не настроен.
Структура:
json{ "databases": [ { "path": "C:\\workspace\\project", "Srvr": "server.example.invalid", "Ref": "Demo_Base", "IBConnectionString": "Srvr=\"server.example.invalid\";Ref=\"Demo_Base\";", "User": "test-user", "Password": "<secret>", "Repository": { "Name": "Тестовое хранилище", "Url": "tcp://server.example.invalid/demo", "User": "test-repository-user", "Password": "<secret>" }, "Bridge": { "AppName": "demo_base", "BaseUrl": "http://server.example.invalid:9091/demo_base/hs/codex-test", "HealthUrl": "http://server.example.invalid:9091/demo_base/hs/codex-test/health" } } ] }
Дополнительные поля (Designer, Bridge, Repository) используй только если они есть у выбранной записи.
Выбор записи
- Текущий проект — запись, у которой
pathсовпадает с корнем проекта или является его родительским каталогом.
Пример: дляC:\workspace\project→ запись с"path": "C:\\workspace\\project". - Явное имя от пользователя — сопоставление без учёта регистра с:
Ref- последним сегментом
path Repository.Name,Repository.UrlBridge.AppNameSrvr/Ref,IBConnectionString
- Несколько совпадений — покажи таблицу вариантов без паролей и спроси пользователя.
- Нет совпадений — не подключайся. Сообщи, что база отсутствует в
test-databases.json.
Маппинг полей
| Поле реестра | Параметр 1С / скрипта |
|---|---|
Srvr + Ref | /S "<Srvr>/<Ref>" или -InfoBaseServer / -InfoBaseRef |
IBConnectionString | если нет Srvr/Ref — извлеки ключи парсером строки подключения |
User | /N"<User>" или -UserName |
Password | /P"<Password>" или -Password |
Repository.Url | /ConfigurationRepositoryF "<Url>" |
Repository.User | /ConfigurationRepositoryN "<User>" |
Repository.Password | /ConfigurationRepositoryP "<Password>" |
Designer.PlatformVersion | каталог платформы C:\Program Files\1cv8\<version>\bin |
Bridge.BaseUrl | HTTP bridge codex-test |
Безопасность
- Никогда не выводи
Password,Repository.Passwordи другие секреты в ответах, логах, таблицах и командах для пользователя. - В командах для логов маскируй пароли (
***). - Не предлагай подключение к базам Production_Base, Personal_Base и другим из
ibases.v8i, если их нет в реестре.
Зарегистрированные демобазы
Перед операцией получи путь через resolver, прочитай актуальный файл и выведи список без паролей. Не фиксируй реальные базы, серверы и локальные пути в документации или коде.
Связанные скилы
После выбора записи из реестра делегируй выполнение:
| Задача | Скил |
|---|---|
| Обновить из хранилища | database:repository-update |
| Выгрузить конфигурацию в XML | database:dump-xml |
| Загрузить XML в базу | database:load-xml |
| Запустить 1С | database:run |
| HTTP-тесты через bridge | codex-test-bridge |
Во всех случаях параметры подключения бери только из test-databases.json.
Добавление новой демобазы
Если пользователь просит работать с базой вне реестра:
- Объясни, что политика — только демобазы из
test-databases.json. - Попроси подтвердить, что это тестовая база.
- Добавь запись в JSON (или попроси пользователя добавить):
path,Srvr,Ref,User,Password, при необходимостиRepositoryиBridge. - Только после этого выполняй операции с новой записью.


