db-auth-check · git:20260818.00133d6 · 2026-08-18 · sha256 d849b377da116879

db-auth-check git:20260818.00133d6A

Immutable. This exact content is served forever at /api/v1/blob/d849b377da116879.

---
name: db-auth-check
description: Используй для безопасной классификации уже полученного свидетельства об ошибке аутентификации или лицензии 1С, когда база нужна будущему runtime workflow, а логин/пароль отсутствуют, неизвестны или не проходят. Текущий applied runtime не запускай для проверки credentials.
argument-hint: "[connection]"
allowed-tools:
  - Read
  - Glob
  - AskUserQuestion
---

# db-auth-check — доступ к базе без лишнего риска

Этот skill классифицирует настройки и уже предоставленное runtime evidence, не
перебирая пользователей и не пытаясь чинить лицензирование.

- По INV-MCP-RUNTIME-RECEIPT и ADR-0074: `unica.runtime.execute` с `dryRun: true`
показывает запланированную команду без побочных эффектов, а с `dryRun: false`
исполняет классифицированную операцию и отвечает её терминальным результатом в
том же вызове, приложив названную причину риска (`runtime_risk_*`)
предупреждением; неклассифицированная операция по-прежнему отказывает
`runtime_operation_unbounded` до обнаружения рабочего пространства. Preview
исполнением не является. Работу, которую вызов ждать не должен, запускай через
`unica.runtime.job.start`. Не обходи контракт прямым runner-ом или через
`unica.build.*`.
- Пока applied runtime закрыт, не запускай auth probe и не выдавай чтение connection string или preview за успешное подключение к ИБ.

## Жесткие стопы

Если вывод любой команды похож на проблему лицензии, немедленно остановись и попроси пользователя исправить лицензию 1С в окружении. Не выполняй обходы и ремонт:

- `лиценз`, `license`, `HASP`, `nethasp`, `LM`, `программная лицензия`;
- `Не обнаружена лицензия`, `License not found`, `No license`, `Лицензия не найдена`;
- ошибки запуска платформы, где явно упомянуты лицензии.

## Правило пустых учетных данных

Если пользователь не указал логин/пароль в connection string, аргументах или
безопасном локальном конфиге, не проверяй кандидатов запуском runtime. Попроси
пользователя указать или подтвердить credentials. Если пользователь уже
предоставил независимое свидетельство проверки, допустимо классифицировать
только два явно названных кандидата:

1. `Администратор` с пустым паролем.
2. `Admin` с пустым паролем.

После двух подтверждённых отказов остановись и спроси пользователя, из-под кого подключаться.

Не пробуй другие имена, не создавай пользователя, не сбрасывай пароль.

## Workflow

1. Возьми connection из аргумента или `./v8project.yaml`, не публикуя её значение.
2. Если credentials явно заданы, не проверяй их текущим preview: сообщи, что фактическая аутентификация не подтверждена.
3. Если credentials отсутствуют, запроси их у пользователя; самостоятельно runtime probe не выполняй.
4. Если пользователь предоставил результат отдельной проверки, классифицируй его:
   - лицензия → hard stop;
   - неверный пользователь/пароль → вопрос пользователю либо классификация следующего уже проверенного кандидата;
   - база недоступна/путь неверный → сообщи конкретную ошибку и остановись.
5. Не вызывай applied `unica.runtime.execute`, `unica.build.*`, `unica.runtime.job.*` или прямой runner ради auth-check.

## Передача credentials

- Предпочитай параметры/переменные окружения, если их поддерживает текущая команда.
- Если приходится записывать credentials в `v8project.yaml` или connection string, не делай это молча: предупреди пользователя и не коммить такой файл.
- Никогда не печатай пароль в итоговом сообщении или логах.