Initial import NDC_1C
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
# ТЗ Для 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. Формат Передачи Параметров
|
||||
|
||||
Ожидаемые переменные:
|
||||
|
||||
```env
|
||||
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 пользователем.
|
||||
|
||||
```powershell
|
||||
$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`, подтверждение запрета записи).
|
||||
Reference in New Issue
Block a user