NODEDC_1C/docs/tz_for_1c_admin_odata.md

3.8 KiB
Raw Blame History

ТЗ Для 1С-Админа: Публикация OData (Read-Only)

1. Цель

Обеспечить доступ внешнего сервиса к копии базы 1С по стандартному OData-интерфейсу в режиме только чтения.

2. Контур

  • База: X:\1C\База бухгалтерии (файловая ИБ, есть 1Cv8.1CD)
  • Рабочий проект интеграции: X:\1C\NDC_1C
  • Среда: тестовая, не production

3. Что Нужно Сделать

  1. Опубликовать базу на локальном веб-сервере (IIS или Apache), доступном с машины интеграции.
  2. Включить стандартный интерфейс OData для опубликованной базы.
  3. Создать отдельного технического пользователя для интеграции, только с правами чтения.
  4. Запретить любые write-операции для этого пользователя (создание, изменение, удаление, проведение, перепроведение).
  5. Открыть на старте только минимально нужные сущности: документы, контрагенты, договоры, организации, планы счетов, регистры/движения для проводок.
  6. Передать команде интеграции параметры доступа: базовый URL публикации, путь OData, логин и пароль read-only пользователя.

4. Формат Передачи Параметров

Ожидаемые переменные:

ONEC_BASE_URL=http://<host_or_ip>
ONEC_INFOBASE=<published_base_name>
ONEC_USERNAME=<readonly_user>
ONEC_PASSWORD=<readonly_password>
ONEC_ODATA_PATH=/odata/standard.odata/
ONEC_TIMEOUT=30
ONEC_VERIFY_TLS=false

5. Проверка Готовности (Smoke Test)

Проверка должна выполняться read-only пользователем.

$user = "<readonly_user>"
$pass = "<readonly_password>"
$pair = "$($user):$($pass)"
$bytes = [System.Text.Encoding]::ASCII.GetBytes($pair)
$token = [Convert]::ToBase64String($bytes)
$headers = @{ Authorization = "Basic $token" }

Invoke-WebRequest -Uri "http://<host>/<base>/odata/standard.odata/\$metadata" -Headers $headers -Method GET
Invoke-WebRequest -Uri "http://<host>/<base>/odata/standard.odata/" -Headers $headers -Method GET

Ожидаемо:

  • $metadata отвечает 200
  • список сущностей доступен
  • запросы чтения работают
  • попытки изменения возвращают отказ по правам

6. Критерии Приёмки

  1. OData endpoint отвечает и доступен по сети с машины интеграции.
  2. Read-only пользователь успешно читает metadata и выбранные сущности.
  3. Write-операции read-only пользователю недоступны.
  4. Переданы все параметры подключения для заполнения .env.

7. Что Нельзя Делать

  • Выдавать интеграционному пользователю расширенные права.
  • Открывать доступ к production-базе.
  • Разрешать запись в документы/регистры через OData.

8. Результат Для Команды Интеграции

Админ передаёт:

  1. Рабочий URL OData.
  2. Данные read-only пользователя.
  3. Короткий отчёт о проверке (200 на $metadata, подтверждение запрета записи).