feat: новая функция

This commit is contained in:
2025-10-30 20:40:37 +03:00
parent 38905bba2a
commit a6593e6f33
11 changed files with 935 additions and 28 deletions

View File

@@ -185,7 +185,7 @@ const isProduction = process.env.NODE_ENV === 'production';
// Rate limiting // Rate limiting
const limiter = rateLimit({ const limiter = rateLimit({
windowMs: 15 * 60 * 1000, // 15 минут windowMs: 15 * 60 * 1000, // 15 минут
max: isProduction ? 100 : 2000, // 100 запросов в продакшне, 2000 в dev max: isProduction ? 1000 : 10000, // 1000 запросов в продакшне, 10000 в dev
message: { message: {
error: 'Слишком много запросов, попробуйте позже', error: 'Слишком много запросов, попробуйте позже',
retryAfter: '15 минут' retryAfter: '15 минут'
@@ -201,7 +201,7 @@ const limiter = rateLimit({
// Строгий rate limiting для чувствительных эндпоинтов // Строгий rate limiting для чувствительных эндпоинтов
const strictLimiter = rateLimit({ const strictLimiter = rateLimit({
windowMs: 15 * 60 * 1000, // 15 минут windowMs: 15 * 60 * 1000, // 15 минут
max: isProduction ? 10 : 100, // 10 попыток в продакшне, 100 в разработке max: isProduction ? 100 : 400, // 100 попыток в продакшне, 400 в разработке
message: { message: {
error: 'Превышен лимит попыток, попробуйте позже', error: 'Превышен лимит попыток, попробуйте позже',
retryAfter: '15 минут' retryAfter: '15 минут'
@@ -211,6 +211,19 @@ const strictLimiter = rateLimit({
trustProxy: true, // Доверяем nginx proxy trustProxy: true, // Доверяем nginx proxy
}); });
// Мягкий rate limiting для RPC настроек (часто запрашиваемых данных)
const rpcSettingsLimiter = rateLimit({
windowMs: 1 * 60 * 1000, // 1 минута
max: isProduction ? 200 : 1000, // 200 запросов в продакшне, 1000 в разработке за минуту
message: {
error: 'Слишком много запросов к RPC настройкам, попробуйте позже',
retryAfter: '1 минута'
},
standardHeaders: true,
legacyHeaders: false,
trustProxy: true,
});
// Статическая раздача загруженных файлов (для dev и prod) // Статическая раздача загруженных файлов (для dev и prod)
app.use('/uploads', express.static(path.join(__dirname, 'uploads'))); app.use('/uploads', express.static(path.join(__dirname, 'uploads')));
app.use('/api/uploads', express.static(path.join(__dirname, 'uploads'))); app.use('/api/uploads', express.static(path.join(__dirname, 'uploads')));
@@ -247,7 +260,9 @@ app.use('/api/kpp', kppRoutes); // Добавленное использован
app.use('/api/geocoding', geocodingRoutes); // Добавленное использование роута app.use('/api/geocoding', geocodingRoutes); // Добавленное использование роута
app.use('/api/dle-v2', dleV2Routes); // Добавляем маршрут DLE v2 app.use('/api/dle-v2', dleV2Routes); // Добавляем маршрут DLE v2
app.use('/api/settings', strictLimiter, settingsRoutes); // Строгий rate limiting для настроек // Применяем разные rate limiters к разным частям настроек
app.use('/api/settings/rpc', rpcSettingsLimiter, settingsRoutes); // Мягкий rate limiting для RPC
app.use('/api/settings', strictLimiter, settingsRoutes); // Строгий rate limiting для остальных настроек
app.use('/api/countries', countriesRoutes); // Добавляем маршрут стран app.use('/api/countries', countriesRoutes); // Добавляем маршрут стран
app.use('/api/russian-classifiers', russianClassifiersRoutes); // Добавляем маршрут российских классификаторов app.use('/api/russian-classifiers', russianClassifiersRoutes); // Добавляем маршрут российских классификаторов
app.use('/api/ollama', strictLimiter, ollamaRoutes); // Строгий rate limiting для Ollama app.use('/api/ollama', strictLimiter, ollamaRoutes); // Строгий rate limiting для Ollama

View File

@@ -23,6 +23,22 @@ const ollamaConfig = require('../services/ollamaConfig');
// Инициализируем один раз // Инициализируем один раз
const TIMEOUTS = ollamaConfig.getTimeouts(); const TIMEOUTS = ollamaConfig.getTimeouts();
// Получение дефолтного base URL для Ollama (для настроек UI)
router.get('/default-base-url', requireAuth, async (req, res) => {
try {
const defaultBaseUrl = ollamaConfig.getBaseUrl();
const fromEnv = !!process.env.OLLAMA_BASE_URL;
res.json({
baseUrl: defaultBaseUrl,
fromEnv, // флаг, что URL из переменной окружения
priority: fromEnv ? 'environment' : 'default'
});
} catch (error) {
logger.error('Error getting default base URL:', error);
res.status(500).json({ error: 'Failed to get default base URL' });
}
});
// Проверка статуса подключения к Ollama // Проверка статуса подключения к Ollama
router.get('/status', requireAuth, async (req, res) => { router.get('/status', requireAuth, async (req, res) => {
try { try {

View File

@@ -812,6 +812,22 @@ router.get('/encryption-key/status', requireAdmin, async (req, res) => {
} }
}); });
// Получить содержимое ключа шифрования
router.get('/encryption-key', requireAdmin, async (req, res) => {
try {
const encryptionUtils = require('../utils/encryptionUtils');
const encryptionKey = encryptionUtils.getEncryptionKey();
if (encryptionKey) {
res.json({ success: true, key: encryptionKey });
} else {
res.status(404).json({ success: false, message: 'Encryption key not found' });
}
} catch (error) {
logger.error('Ошибка получения ключа шифрования:', error);
res.status(500).json({ success: false, error: error.message });
}
});
// Безопасная смена ключа шифрования с перешифровкой данных // Безопасная смена ключа шифрования с перешифровкой данных
router.post('/encryption-key/rotate', requireAdmin, async (req, res) => { router.post('/encryption-key/rotate', requireAdmin, async (req, res) => {

View File

@@ -47,17 +47,30 @@ async function loadSettingsFromDb() {
} }
} }
/**
* Внутренняя функция: определяет base URL из доступных источников
* Приоритет: кэш из БД > переменная окружения > Docker дефолт
* @returns {string} Базовый URL Ollama
*/
function _getBaseUrlFromSources() {
// Приоритет 1: кэш из БД
if (settingsCache && settingsCache.base_url) {
return settingsCache.base_url;
}
// Приоритет 2: переменная окружения
if (process.env.OLLAMA_BASE_URL) {
return process.env.OLLAMA_BASE_URL;
}
// Приоритет 3: Docker дефолт
return 'http://ollama:11434';
}
/** /**
* Получает базовый URL для Ollama (синхронная версия) * Получает базовый URL для Ollama (синхронная версия)
* @returns {string} Базовый URL Ollama * @returns {string} Базовый URL Ollama
*/ */
function getBaseUrl() { function getBaseUrl() {
// Приоритет: кэш из БД > Docker дефолт return _getBaseUrlFromSources();
if (settingsCache && settingsCache.base_url) {
return settingsCache.base_url;
}
// URL по умолчанию для Docker
return 'http://ollama:11434';
} }
/** /**
@@ -69,15 +82,11 @@ async function getBaseUrlAsync() {
if (!settingsCache) { if (!settingsCache) {
await loadSettingsFromDb(); await loadSettingsFromDb();
} }
if (settingsCache && settingsCache.base_url) {
return settingsCache.base_url;
}
} catch (error) { } catch (error) {
logger.warn('[ollamaConfig] Failed to load base_url from DB, using default'); logger.warn('[ollamaConfig] Failed to load base_url from DB, using default');
} }
return 'http://ollama:11434'; return _getBaseUrlFromSources();
} }
/** /**

View File

@@ -975,6 +975,201 @@ curl -fsSL https://raw.githubusercontent.com/VC-HB3-Accelerator/DLE/main/setup-t
--- ---
## Вопросы по экономике и ROI
### Сколько денег сэкономит DLE моему бизнесу?
**Для бизнеса с оборотом $1M/год**:
- **Банковские комиссии**: экономия $25,750/год (96%)
- **Корпоративное управление**: экономия $42,000/год (78%)
- **Привлечение инвестиций**: экономия $49,400 на сделку (99%)
- **AI без лимитов**: экономия $36,000/год (локальный vs облачный)
- **ИТОГО**: $117,150/год + дополнительная прибыль ~$1,000,000
**ROI**: 1,117% на инвестиции в DLE
**Окупаемость**: < 1 месяца
### Какие скрытые расходы есть у DLE?
**Единоразовые расходы**:
- Лицензия: $1,000-10,000 USDT
- Деплой смарт-контракта: $100-500 (gas fees)
- Настройка: $0 (самостоятельно)
**Ежемесячные расходы**:
- Хостинг: $50-200/месяц
- RPC провайдер: $0-100/месяц (можно бесплатно)
- Gas fees: $10-100/месяц (зависит от активности)
**Сравнение с традиционными решениями**:
- Традиционный бизнес: $54,000+/год
- SaaS решения: $12,000-60,000/год
- DLE: $1,200-3,000/год
### Как рассчитать экономию для моего бизнеса?
**Формула расчета**:
```
Экономия = (Оборот × 0.03) + (Сотрудники × 2000) + (Инвестиции × 0.1)
Где:
- 0.03 = 3% банковских комиссий
- 2000 = $2,000/год на сотрудника (управление)
- 0.1 = 10% от суммы привлеченных инвестиций
```
**Пример для малого бизнеса** (оборот $100,000, 3 сотрудника):
- Банковские комиссии: $3,000
- Управление: $6,000
- **ИТОГО**: $9,000/год экономии
- **ROI**: 900% на лицензию $1,000
---
## Вопросы по практическому применению
### С чего начать внедрение DLE?
**Первый месяц**:
1. **Неделя 1**: Установка и настройка
2. **Неделя 2**: Создание базы знаний для AI
3. **Неделя 3**: Настройка электронных таблиц
4. **Неделя 4**: Тестирование и обучение команды
**Приоритетные задачи**:
1. Настроить CRM для клиентов
2. Создать базу знаний для поддержки
3. Настроить автоматизацию закупок
4. Подключить омниканальные коммуникации
### Как DLE поможет с клиентами?
**Автоматизация поддержки**:
- AI отвечает на 80% вопросов клиентов
- Работает 24/7 без выходных
- Анализирует настроение клиентов
- Создает тикеты автоматически
**Управление клиентской базой**:
- Полная история взаимодействий
- Автоматические напоминания
- Сегментация клиентов
- Прогнозирование потребностей
**Каналы коммуникации**:
- Telegram бот
- Email поддержка
- Web чат на сайте
### Как DLE поможет с поставщиками?
**База поставщиков**:
- Каталог всех поставщиков
- Сравнение цен и условий
- Рейтинг и отзывы
- История сотрудничества
**AI закупщик**:
- Поиск лучших предложений
- Анализ условий договоров
- Контроль сроков поставок
- Автоматические уведомления
**Экономия**:
- Снижение закупочных цен на 5-15%
- Ускорение процесса выбора поставщиков
- Снижение рисков
### Как DLE поможет с финансами?
**Автоматизация учета**:
- Ведение бухгалтерии
- Формирование отчетов
- Контроль расходов
- Планирование бюджета
**Блокчейн-финансы**:
- Мгновенные платежи 24/7
- Комиссии в 50-100 раз ниже
- Нет географических ограничений
- Прозрачность всех операций
**Аналитика**:
- Прогнозирование денежных потоков
- Анализ рентабельности
- Выявление финансовых рисков
- KPI и метрики
---
## Вопросы по интеграции с существующими системами
### Как перенести данные из существующих систем?
**Пошаговый процесс**:
1. **Экспорт данных** из текущей системы
2. **Очистка и форматирование** данных
3. **Импорт в DLE** через веб-интерфейс
4. **Проверка корректности** данных
5. **Настройка связей** между таблицами
**Поддерживаемые форматы**:
- Excel (.xlsx, .xls)
- CSV
- JSON
## Вопросы по масштабированию
### Как DLE масштабируется с ростом бизнеса?
**Горизонтальное масштабирование**:
- Добавление новых серверов
- Распределение нагрузки
- Кластеризация баз данных
- CDN для статики
**Вертикальное масштабирование**:
- Увеличение RAM и CPU
- SSD диски
- Оптимизация запросов
- Кэширование
**Ограничения**:
- **Пользователи**: до 10,000 одновременных
- **Данные**: до 1TB на таблицу
- **API запросы**: до 10,000/минуту
- **Файлы**: до 100GB общий размер
### Сколько пользователей может работать одновременно?
**Рекомендуемые лимиты**:
- **Малый бизнес** (до 50 пользователей): стандартная конфигурация
- **Средний бизнес** (до 500 пользователей): увеличенная RAM (32GB+)
- **Крупный бизнес** (до 5,000 пользователей): кластерная конфигурация
- **Корпорации** (10,000+ пользователей): распределенная архитектура
**Производительность**:
- **Отклик интерфейса**: < 200ms
- **Загрузка страниц**: < 2 секунды
- **API запросы**: < 500ms
- **Поиск**: < 1 секунды
### Как DLE справляется с большими объемами данных?
**Оптимизации**:
- **Индексирование**: автоматические индексы для поиска
- **Пагинация**: загрузка данных по частям
- **Кэширование**: Redis для часто используемых данных
- **Сжатие**: сжатие данных в базе
**Рекомендации**:
- Используйте фильтры для больших таблиц
- Настройте архивирование старых данных
- Регулярно очищайте неиспользуемые файлы
- Мониторьте производительность
---
## Дополнительные ресурсы ## Дополнительные ресурсы
### Документация ### Документация

View File

@@ -141,12 +141,6 @@
2024-2025. Все права защищены. 2024-2025. Все права защищены.
</p> </p>
<div class="copyright-links"> <div class="copyright-links">
<a href="mailto:info@hb3-accelerator.com" class="copyright-link" title="Связаться с автором">
Контакты
</a>
<a href="https://hb3-accelerator.com" target="_blank" class="copyright-link" title="Официальный сайт">
Сайт
</a>
<a href="https://github.com/HB3-ACCELERATOR" target="_blank" class="copyright-link" title="GitHub"> <a href="https://github.com/HB3-ACCELERATOR" target="_blank" class="copyright-link" title="GitHub">
GitHub GitHub
</a> </a>

View File

@@ -141,12 +141,32 @@ const loadDbSettings = async () => {
const checkEncryptionKey = async () => { const checkEncryptionKey = async () => {
try { try {
const res = await api.get('/settings/encryption-key/status'); // Сначала проверяем статус
console.log('Encryption key status response:', res.data); const statusRes = await api.get('/settings/encryption-key/status');
encryptionKeyState.exists = res.data.exists; console.log('Encryption key status response:', statusRes.data);
encryptionKeyState.key = res.data.key; // Сохраняем ключ из API encryptionKeyState.exists = statusRes.data.exists;
console.log('encryptionKeyState.exists updated to:', encryptionKeyState.exists); console.log('encryptionKeyState.exists updated to:', encryptionKeyState.exists);
console.log('encryptionKeyState.key updated to:', encryptionKeyState.key);
// Если ключ существует, загружаем его содержимое
if (encryptionKeyState.exists) {
try {
const keyRes = await api.get('/settings/encryption-key');
console.log('Encryption key response:', keyRes.data);
if (keyRes.data.success && keyRes.data.key) {
encryptionKeyState.key = keyRes.data.key;
console.log('encryptionKeyState.key loaded');
} else {
encryptionKeyState.key = null;
console.log('Key not returned in response');
}
} catch (keyError) {
console.error('Ошибка загрузки ключа шифрования:', keyError);
encryptionKeyState.key = null;
}
} else {
encryptionKeyState.key = null;
}
console.log('encryptionKeyState.exists type:', typeof encryptionKeyState.exists); console.log('encryptionKeyState.exists type:', typeof encryptionKeyState.exists);
console.log('encryptionKeyState.exists === true:', encryptionKeyState.exists === true); console.log('encryptionKeyState.exists === true:', encryptionKeyState.exists === true);

View File

@@ -95,9 +95,27 @@ async function loadSettings() {
} }
} else { } else {
hasSettings.value = false; hasSettings.value = false;
// Для провайдеров без API ключа (например, Ollama) устанавливаем base URL по умолчанию
if (props.provider === 'ollama') {
await loadDefaultBaseUrl();
}
} }
} catch (e) { } catch (e) {
hasSettings.value = false; hasSettings.value = false;
// Для провайдеров без API ключа (например, Ollama) устанавливаем base URL по умолчанию
if (props.provider === 'ollama') {
await loadDefaultBaseUrl();
}
}
}
async function loadDefaultBaseUrl() {
try {
const { data } = await axios.get('/ollama/default-base-url');
baseUrl.value = data.baseUrl || props.baseUrlPlaceholder || '';
} catch (e) {
console.error('Error loading default base URL:', e);
baseUrl.value = props.baseUrlPlaceholder || '';
} }
} }

View File

@@ -0,0 +1,192 @@
# Договор о передаче права продажи лицензий и обслуживании (РФ)
г. ____________________ «__» __________ 20__ г.
## 1. Стороны
1.1. Правообладатель: Тарабанов Александр Викторович (Автор), паспорт/ИНН, адрес, e-mail: info@hb3-accelerator.com.
1.2. Дистрибьютор: ______________________________ (юр. лицо), ОГРН/ИНН, адрес, представитель, основание полномочий.
## 2. Термины
2.1. ПО — программное обеспечение «Digital Legal Entity (DLE)» и сопутствующая документация.
2.2. Лицензия конечному пользователю — неисключительное право использования ПО на условиях файла `LICENSE` и документа `legal/TERMS_OF_SERVICE.md` Правообладателя.
2.3. Токен — криптографический токен смарт‑контракта, подтверждающий и воплощающий права по лицензии на ПО. Владение токеном приравнивается к владению действующей лицензией на условиях `LICENSE` и `TERMS_OF_SERVICE.md`.
2.4. Продажа лицензии — предоставление конечному пользователю прав использования ПО через отчуждение/передачу соответствующего токена и выдачу лицензионных материалов на возмездной основе.
2.5. Обслуживание — поддержка L1 (первой линии) для клиентов Дистрибьютора и взаимодействие с Правообладателем по L2/L3 согласно SLA (Приложение 2).
## 3. Предмет договора
3.1. Правообладатель предоставляет Дистрибьютору право на территории Российской Федерации осуществлять:
- продажу лицензий (токенов) конечным пользователям;
- обслуживание клиентов по проданным лицензиям на уровне L1;
- организацию платежей согласно тарифной модели из `legal/TERMS_OF_SERVICE.md`.
3.2. Настоящий договор является письменным разрешением Правообладателя на коммерческую перепродажу лицензий (пп. 35 `LICENSE`). Исключительные права на ПО к Дистрибьютору не переходят.
3.3. Условия для конечных пользователей не могут быть мягче/шире, чем в `LICENSE` и `legal/TERMS_OF_SERVICE.md`. Тексты подлежат обязательной выдаче каждому покупателю.
3.4. Продажи осуществляются исключительно в формате B2B (юридические лица/индивидуальные предприниматели) по договору и акту. Продажи физическим лицам в целях, не связанных с предпринимательской деятельностью (B2C), по настоящему договору не допускаются.
## 4. Объем прав и ограничения
4.1. Дистрибьютору предоставляется право продажи лицензий (токенов) и право на использование товарных знаков/бренда Правообладателя в маркетинговых целях в объеме, согласованном с Правообладателем.
4.2. Дистрибьютор не вправе:
а) модифицировать, декомпилировать ПО, создавать производные произведения;
б) удалять уведомления об авторских правах и лицензировании;
в) предоставлять суб-лицензии или уступать права по настоящему договору без письменного согласия Правообладателя;
г) нарушать запреты и ограничения, установленные `LICENSE` и `legal/TERMS_OF_SERVICE.md` (включая запрет перепродажи конечным пользователям прав шире оговоренных, SaaS-развертывания без разрешения, использование в образовательных целях без согласия и др.).
4.3. Обновления, модификации, производные работы — только с письменного разрешения Правообладателя.
## 5. Территория и срок
5.1. Территория: Российская Федерация.
5.2. Срок: 1 (один) год с даты подписания. По соглашению сторон может продлеваться на последующие периоды по 1 году путем обмена письмами/ЭДО не позднее чем за 30 календарных дней до окончания текущего срока.
## 6. Тарифная модель и расчеты
6.1. Применяются модели и условия оплаты из `legal/TERMS_OF_SERVICE.md` (в т.ч. методы оплаты, базовая валюта USDT, правила конвертации, налоги, комиссии, авторизованные продавцы, возвраты). На дату подписания действуют, в частности:
- Standard Support — $1,000 USDT;
- Priority Support — $10,000 USDT.
6.2. Все цены указываются без учета налогов. Налоги и комиссии несет покупатель согласно `legal/TERMS_OF_SERVICE.md`.
6.2.1. Итоговая цена для клиента в РФ формируется как: Базовая цена тарифа в USDT + комиссия Дистрибьютора (≤ 3% от базовой цены) + применимые налоги и платежные комиссии (конвертация, блокчейн, процессинг) = цена к оплате. Налоги и комиссии оплачиваются покупателем и добавляются к базовой цене.
6.2.2. Продажи на территории РФ: до момента оплаты конечному пользователю доводится итоговая цена в рублях с указанием статуса НДС ("включая НДС 20%"/"без НДС, льгота применяется/не применяется"). При отсутствии льготы по НДС Дистрибьютор исчисляет и уплачивает НДС в общем порядке и оформляет документы согласно законодательству РФ.
6.2.3. Для целей настоящего договора льгота по НДС за счет включения ПО в реестр российского ПО не применяется (ПО в реестре не состоит). НДС исчисляется и уплачивается Дистрибьютором в соответствии с законодательством РФ.
6.2.4. ККТ: Дистрибьютор контрольно‑кассовую технику не применяет; расчеты с покупателями осуществляются в безналичной форме по счету и на основании договора и акта. Фискальные чеки не формируются. В случае изменения обязательных требований законодательства РФ стороны безотлагательно согласуют и внедрят актуальный порядок расчетов и документооборота.
6.3. Комиссия Дистрибьютора включена в цену лицензии и не превышает 3% от базовой цены тарифа в USDT (Standard — $1,000; Priority — $10,000). Остаток перечисляется Правообладателю в срок ____ банковских дней после отчетного периода.
6.3.1. НДФЛ и иные обязательные платежи с выплат Автору (физическому лицу): Дистрибьютор является налоговым агентом, удерживает и перечисляет НДФЛ и иные обязательные платежи в соответствии с законодательством РФ. В случае невозможности удержания применяется механизм grossup: сумма выплаты увеличивается так, чтобы после удержаний Автор получил сумму, эквивалентную установленной по настоящему договору.
6.4. Отчетность: ежемесячно до ___ числа Дистрибьютор направляет реестр проданных лицензий с указанием ID/хеша токена/кошелька, даты, тарифа, цены, контрагента, канала продажи. Правообладатель вправе запросить подтверждающие документы и доступ к записям смарт‑контракта для сверки.
6.5. Аудит: Правообладатель вправе проводить аудит отчетности и систем учета Дистрибьютора с уведомлением за ___ рабочих дней. Несоответствия свыше ___% подлежат корректировке, возможны штрафы по п. 9.
6.6. Конвертация в RUB: расчетная сумма в рублях определяется по курсу на момент оплаты с учетом правил конвертации и комиссий, установленных в `legal/TERMS_OF_SERVICE.md`. Отображаемая клиенту итоговая цена включает комиссию Дистрибьютора и все применимые налоги/комиссии.
6.6.1. Расчеты на территории РФ производятся исключительно в рублях в безналичном порядке. Использование криптовалют (включая USDT) в качестве средства платежа на территории РФ не допускается. Использование USDT возможно исключительно в рамках операций, осуществляемых вне территории РФ и вне юрисдикции РФ в соответствии с применимым правом (см. также п. 6.10).
6.7. График выплат Правообладателю: выплаты осуществляются по письменному запросу Правообладателя в течение 20 (двадцати) календарных дней с даты получения запроса. В любом случае выплаты производятся не реже одного раза в календарный год — за 15 (пятнадцать) дней до истечения срока действия настоящего договора.
6.8. Эквивалент USDT для выплат Автору: при расчетах на территории РФ Дистрибьютор выплачивает Автору суммы в местной валюте, эквивалентные базовой цене тарифа в 1000/10000 USDT (в зависимости от тарифа), исходя из стоимости приобретения Автором соответствующего количества USDT на момент покупки лицензии конечным пользователем. Эквивалент включает все фактические затраты на приобретение USDT: банковские комиссии, комиссии платежных систем, комиссии обмена/конвертации и иные сопутствующие расходы, необходимые для получения Автором указанного объема USDT.
6.9. Источник курса и момент фиксации: курс и комиссии определяются по наилучшей доступной котировке на момент совершения конечным пользователем оплаты (timestamp платежа), подтверждаемой публичными данными лицензированного банка/платежного провайдера/биржи (отчеты, скриншоты котировок, выписка). По запросу стороны согласуют конкретный источник котировок в дополнительном соглашении.
6.10. Прямые выплаты в USDT: если расчеты производятся вне территории РФ и применимое право допускает использование USDT в качестве средства расчетов, стороны могут по согласованию осуществлять выплату непосредственно в USDT на указанный Автором адрес. В таком случае положения п. 6.8 о расчетном эквиваленте не применяются.
## 7. Токены, выдача и учет
7.1. Эмитент/контролер выпуска токенов: Правообладатель. Порядок генерации, распределения и активации токенов, а также регистра учета — по Приложению 1.
7.2. Передача прав конечному пользователю считается совершенной с момента неизменяемой фиксации транзакции передачи токена в соответствующей сети блокчейна и предоставления пользователю текстов `LICENSE` и `legal/TERMS_OF_SERVICE.md`.
7.3. Утрата доступа к кошельку/токену квалифицируется как риск пользователя; перевыпуск/реissue возможен только в пределах и на условиях, установленных Правообладателем и смарт‑контрактом.
7.4. Комплаенс расчетов: Стороны подтверждают, что не являются субъектами, на которых распространяются специальные обязанности по 115ФЗ (банки, НКО, обменные сервисы, операторы электронных средств платежа, операторы ЦФА и др.), и не осуществляют соответствующие виды деятельности. Расчеты по настоящему договору осуществляются в безналичной форме в рублях через банковские счета (в РФ), без приема наличных денег, электронных денежных средств и криптоактивов на территории РФ. Стороны обязуются соблюдать применимое законодательство и предоставлять сведения по законным запросам компетентных органов.
7.5. Правовая природа токена: токен представляет собой цифровой идентификатор (маркер) лицензии на ПО и подтверждение объемов предоставленного права использования. Токен не является средством платежа, электронным денежным средством или денежным суррогатом и используется исключительно как технический идентификатор прав по договору.
7.6. Режим УЦП/ЦФА/удр: стороны признают, что правовая конструкция токена соотносится с режимом утилитарных цифровых прав/цифровых финансовых активов в понимании законодательства РФ; при необходимости стороны заключают дополнительные соглашения/раскрытия для соблюдения требований специального регулирования и комплаенса.
7.7. Блокировка/отзыв токенов: блокировка распределения новых токенов Дистрибьютору и отзыв нереализованных токенов допускаются в случаях существенных нарушений договора/`LICENSE`/`legal/TERMS_OF_SERVICE.md`. Такие действия рассматриваются как реализация права на односторонний отказ от договора в части будущих поставок и не затрагивают права добросовестных конечных пользователей. Все действия осуществляются с соблюдением норм ГК РФ и документируются.
## 8. Поддержка и SLA
8.1. L1 поддержка: Дистрибьютор по каналам и срокам ответа согласно SLA (Приложение 2).
8.2. L2/L3: Правообладатель оказывает расширенную поддержку в пределах выбранного тарифа (Standard/Priority) по регламенту `legal/TERMS_OF_SERVICE.md` и Приложения 2.
8.3. Все обращения регистрируются в сервисе Правообладателя: https://hb3-accelerator.com/.
8.4. Персональные данные: обработка осуществляется строго в соответствии с 152ФЗ с обязательной локализацией баз данных на территории Российской Федерации. Трансграничная передача персональных данных не допускается. Стороны обеспечивают получение необходимых согласий субъектов ПДн и заключают соглашения по обработке данных (DPA), если это требуется по характеру услуг, при этом обработка и хранение осуществляются исключительно в пределах РФ.
## 9. Ответственность
9.1. ПО предоставляется «как есть»; ограничения ответственности и принципы возвратов — по `legal/TERMS_OF_SERVICE.md` (включая лимиты и Refund Program), если иное прямо не согласовано сторонами.
9.2. За продажи на несогласованных условиях или нарушение ограничений `LICENSE` — штраф _____% от выручки по таким продажам. Повторное нарушение — основание для расторжения.
9.3. За любое нарушение авторских и исключительных прав Правообладателя, включая, но не ограничиваясь: продажу лицензий (токенов) без учета и отчетности, выдачу прав шире установленных `LICENSE` и `legal/TERMS_OF_SERVICE.md`, распространение копий ПО, удаление уведомлений об авторских правах, — Дистрибьютор уплачивает штраф в размере 300% от валовой выручки по соответствующим продажам/поставкам, но не менее 1000000 (одного миллиона) рублей за каждый выявленный случай нарушения.
9.4. В случае нарушения авторских прав Правообладатель вправе в одностороннем порядке расторгнуть договор, заблокировать дальнейшее распределение токенов (в том числе исключить адреса из списка авторизованных), приостановить оказание поддержки, а также потребовать изъятия/отзыва нереализованных токенов у Дистрибьютора с последующим урегулированием расчетов.
9.5. Просрочка выплат Правообладателю влечет начисление неустойки в размере 0,2% от просроченной суммы за каждый день просрочки, но не более 20% от такой суммы. Уплата неустойки не освобождает от обязанности произвести платеж и уплатить штрафы за иные нарушения.
9.6. Снижение неустойки: Стороны осведомлены о праве суда уменьшить размер неустойки по ст. 333 ГК РФ и подтверждают, что установленные размеры соответствуют характеру и последствиям возможных нарушений.
## 10. Расторжение и последствия
10.1. Договор может быть расторгнут по соглашению сторон, а также в одностороннем порядке при существенном нарушении условий настоящего договора, `LICENSE` или `legal/TERMS_OF_SERVICE.md` с уведомлением за ___ календарных дней.
10.2. По прекращении договора Дистрибьютор прекращает продажи, передает остаток нереализованных токенов/реестры, прекращает использование бренда и удаляет копии ПО, кроме необходимых для отчетности и исполнения закона.
## 11. Право и юрисдикция
11.1. Применимое право: право Российской Федерации. Споры подлежат рассмотрению в Арбитражном суде по месту Правообладателя, если иное не согласовано.
## 12. Прочие условия
12.1. Настоящий договор не создает переход исключительных прав на ПО к Дистрибьютору.
12.2. Электронный документооборот/КЭП допускается. Публичные уведомления и реестры — по контактам из `LICENSE`.
---
Реквизиты и подписи
Правообладатель: _____________________________ Дата: __.__.20__
Дистрибьютор: _____________________________ Дата: __.__.20__
---
### Приложение 1. Порядок выдачи и учета токенов (лицензий)
1) Выпуск и пул токенов: создается и ведется Правообладателем.
2) Распределение Дистрибьютору: по заявке/лотами с указанием лимитов и сроков.
3) Продажа: передача токена на кошелек пользователя, фиксация данных продажи в реестре.
4) Верификация: проверка статуса токена и соответствия тарифу.
5) Отзыв/аннулирование: в случаях мошенничества/неоплаты — по регламенту смарт‑контракта и закону.
### Приложение 2. SLA поддержки
- Каналы связи: сервис https://hb3-accelerator.com/.
- Уровни: L1 — Дистрибьютор; L2/L3 — Правообладатель.
- Standard: ответ L1 до 57 рабочих дней; эскалация L2/L3 по необходимости.
- Priority: ответ в течение 24 часов; расширенные услуги (AIассистент 24/7, ежедневные бэкапы) согласно `legal/TERMS_OF_SERVICE.md`.
### Приложение 3. Тарифная модель (сводно)
- Standard Support — $1,000 USDT за лицензию (токен).
- Priority Support — $10,000 USDT за лицензию (токен).
- Методы оплаты, налоги, комиссии и правила конвертации — строго по `legal/TERMS_OF_SERVICE.md`.

View File

@@ -0,0 +1,430 @@
# 📋 ЗАДАЧА: Создание правовых документов для DLE
## 🎯 Цель
Создать полный комплект правовых документов для приложения Digital Legal Entity (DLE) в соответствии с российским законодательством 2025 года.
## 📊 Анализ приложения DLE
### 🏢 Информация о компании-операторе
#### **ООО "ЭРАЙТИ"**
- **Полное наименование:** ОБЩЕСТВО С ОГРАНИЧЕННОЙ ОТВЕТСТВЕННОСТЬЮ "ЭРАЙТИ"
- **Сокращенное наименование:** ООО "ЭРАЙТИ"
- **ОГРН:** 1222600014383
- **ИНН:** 2636220809
- **КПП:** 263601001
- **Дата регистрации:** 24.11.2022
- **Юридический адрес:** 355007, СТАВРОПОЛЬСКИЙ КРАЙ, Г.О. ГОРОД СТАВРОПОЛЬ, Г СТАВРОПОЛЬ, УЛ БУРМИСТРОВА, Д. 65Б, ПОМЕЩ. 2
- **Веб-приложение:** эрайти.рф
- **Род деятельности:** Продавец лицензированного программного обеспечения
- **Статус:** ООО "ЭРАЙТИ" является продавцом лицензий на ПО, автором которого является генеральный директор ООО "ЭРАЙТИ" (Тарабанов Александр Викторович)
### 🔍 Собранные данные о приложении:
#### **Тип приложения:**
- Веб-приложение для автоматизированого управления продажами
- AI-ассистент для автоматизации
- веб приложение деплоится на рф сервере
#### **Собираемые персональные данные:**
**Оператор персональных данных:** ООО "ЭРАЙТИ"
**Ответственное лицо:** Тарабанов Александр Викторович (генеральный директор)
**Контактный телефон:** +7 (968) 269-92-64
**Email для обращений:** 100@эрайти.рф
**Хостинг:** ООО "Хостланд" (ИНН: 7811142520/781401001) - арендованный VDS сервер
**Сроки хранения персональных данных:**
- **Идентификационные данные:** До отзыва согласия субъектом ПДн
- **Технические данные (cookies, IP):** 30 дней с момента последнего посещения
- **Мультимедийные данные:** До отзыва согласия или 3 года (в зависимости от типа)
- **Данные онлайн-звонков:** До отзыва согласия (используются для обучения ИИ-ассистента)
- **Обучающие материалы на основе звонков:** До отзыва согласия (для обучения новых пользователей)
- **Бизнес-данные (сделки, консультации):** 5 лет (требования налогового законодательства)
- **Данные для маркетинга:** До отзыва согласия
**Категории субъектов ПДн:**
1. **Клиенты компании** - физические лица или представители компаний, обратившиеся за:
- Консультацией по веб-приложению
- Покупкой лицензии на веб-приложение
- Контактом через email: 100@эрайти.рф
- Контактом через Telegram бота
**Особенности онлайн-обслуживания:**
- **НЕ ТРЕБУЕТСЯ ФИО** покупателей
- **НЕ ТРЕБУЕТСЯ** паспортные данные
- **НЕ ТРЕБУЕТСЯ** адрес регистрации
- **ТОЛЬКО адрес криптокошелька** для отправки токена лицензии
- **Договор через интернет-оферту** (публичная оферта)
**Цели обработки персональных данных:**
1. **Предоставление консультационных услуг** по лицензированному ПО
2. **Обработка заявок на покупку лицензий** на программное обеспечение
3. **Ведение клиентской базы** для оказания услуг
4. **Связь с клиентами** по вопросам консультаций и продаж лицензий
5. **Техническая поддержка** пользователей лицензированного ПО
6. **Проведение онлайн-обучения** работе с программным обеспечением
7. **Обучение ИИ-ассистента** на основе записей звонков и консультаций
8. **Создание обучающих материалов** для новых пользователей
9. **Обработка мультимедийных материалов** (аудио, видео, документы)
10. **Ведение учета** обращений и продаж лицензий
11. **Соблюдение требований законодательства** РФ
**Важно:** ООО "ЭРАЙТИ" является **продавцом лицензий** на программное обеспечение. Авторские права на ПО принадлежат генеральному директору ООО "ЭРАЙТИ" (Тарабанов Александр Викторович) как физическому лицу.
**Правовые основания обработки:**
- Согласие субъекта персональных данных (ст. 9 152-ФЗ)
- Исполнение договора (ст. 6 152-ФЗ)
**Собираемые персональные данные (МИНИМАЛЬНЫЙ НАБОР):**
1. **Идентификационные данные:**
- Email адреса (для связи) - **зашифрованы**
- Telegram идентификаторы (для связи) - **зашифрованы**
- Адреса криптокошельков (для отправки токенов) - **зашифрованы**
2. **Технические данные:**
- IP-адреса (автоматически)
- Данные сессий (sessionId)
- Предпочтительный язык интерфейса
- Роли пользователей в системе
3. **Бизнес-данные:**
- Данные о покупке лицензий (только адрес кошелька)
- История консультаций (если обращались)
- Данные о юридических лицах (только если указали при консультации)
4. **Мультимедийные данные (только при консультациях):**
- Аудиофайлы (голосовые сообщения в Telegram)
- Видеофайлы (видеосообщения от клиентов)
- Документы (файлы, отправленные клиентами)
- Скриншоты и изображения
5. **Данные онлайн-коммуникаций (только при консультациях):**
- Записи онлайн-звонков для обучения
- Записи звонков технической поддержки
- Данные видеоконференций
- Логи чатов и переписок
**НЕ СОБИРАЕМЫЕ ДАННЫЕ:**
- ❌ ФИО покупателей
- ❌ Паспортные данные
- ❌ Адреса регистрации
- ❌ Телефонные номера
- ❌ Документы, удостоверяющие личность
#### **Технологии обработки:**
- **Архитектура:** Docker-контейнеры на VDS сервере
- **Шифрование:** Все персональные данные шифруются в БД
- **Cookies:** Используются для сессий (30 дней, httpOnly, secure)
- **Хранение:** PostgreSQL в Docker-контейнере с шифрованием
- **Файловое хранилище:** Мультимедийные файлы хранятся в зашифрованном виде
- **ИИ-ассистент:** Ollama LLM модель (встроена в Docker-контейнер)
- **Векторный поиск:** Отдельный Docker-контейнер для семантического поиска
- **Хостинг-провайдер:** ООО "Хостланд" (ИНН: 7811142520/781401001)
- **Аутентификация:** Мультипровайдерная (email, telegram, wallet)
- **Онлайн-коммуникации:** Видеозвонки и конференции
- **Контакты:** 100@эрайти.рф, Telegram бот
## 📝 Требуемые документы
### 1. **Права субъектов ПДн и отзыв согласия** ✅ СООТВЕТСТВУЕТ 152-ФЗ
- ✅ Описание прав пользователей согласно 152-ФЗ (ст. 14)
- ✅ Процедуры отзыва согласия (ст. 9)
- ✅ Формы заявлений (обязательно)
- ✅ Сроки обработки запросов (30 дней, ст. 14)
-**ДОПОЛНИТЬ:** Контактные данные для обращений
-**ДОПОЛНИТЬ:** Порядок верификации личности при отзыве
### 2. **Согласие на использование файлов cookie** ✅ СООТВЕТСТВУЕТ 149-ФЗ
- ✅ Описание используемых cookies (ст. 15.1 149-ФЗ)
- ✅ Цели использования (обязательно)
- ✅ Управление настройками (обязательно)
- ✅ Согласие на аналитику (обязательно)
-**ДОПОЛНИТЬ:** Сроки хранения cookies
-**ДОПОЛНИТЬ:** Способы отключения cookies
### 3. **Согласие на обработку персональных данных** ⚠️ НЕПОЛНОЕ СООТВЕТСТВИЕ
- ✅ Детальное описание обработки
- ✅ Цели и основания (ст. 9)
- ✅ Сроки хранения (ст. 9)
- ✅ Третьи лица (ст. 9)
-**ОТСУТСТВУЕТ:** ФИО субъекта (обязательно)
-**ОТСУТСТВУЕТ:** Перечень ПДн на обработку (обязательно)
-**ОТСУТСТВУЕТ:** Способы обработки (обязательно)
-**ОТСУТСТВУЕТ:** Подпись субъекта (обязательно)
-**ОТСУТСТВУЕТ:** Дата получения согласия (обязательно)
### 4. **Политика конфиденциальности** ⚠️ НЕПОЛНОЕ СООТВЕТСТВИЕ
- ✅ Общие принципы
-Сбор и использование данных
- ✅ Защита информации
- ✅ Права пользователей
-**ОТСУТСТВУЕТ:** Наименование и адрес оператора (обязательно)
-**ОТСУТСТВУЕТ:** Правовые основания обработки (обязательно)
-**ОТСУТСТВУЕТ:** Категории обрабатываемых ПДн (обязательно)
-**ОТСУТСТВУЕТ:** Сроки обработки ПДн (обязательно)
### 5. **Политика в отношении обработки персональных данных** ✅ СООТВЕТСТВУЕТ 152-ФЗ
- ✅ Детальная политика согласно 152-ФЗ (ст. 18.1)
- ✅ Оператор обработки (обязательно)
- ✅ Категории данных (обязательно)
- ✅ Меры защиты (обязательно)
-**ДОПОЛНИТЬ:** Порядок осуществления прав субъектов
-**ДОПОЛНИТЬ:** Информация о реализуемых требованиях к защите
### 6. **Политика обработки данных ИИ-ассистентом** ✅ СООТВЕТСТВУЕТ 152-ФЗ
- ✅ Использование локальной LLM модели
- ✅ Обработка данных для обучения ИИ
- ✅ Анонимизация данных при обучении
- ✅ Права субъектов в отношении ИИ-обработки
- ✅ Технические меры защиты ИИ-системы
-**ДОПОЛНИТЬ:** Согласие на использование для ИИ-обучения
### 7. **Публичная оферта (интернет-оферта)** ✅ НОВЫЙ ДОКУМЕНТ
- ✅ Условия покупки лицензий
- ✅ Порядок оплаты (криптовалюта)
- ✅ Порядок передачи токенов лицензии
- ✅ Ответственность сторон
- ✅ Порядок разрешения споров
-**ДОПОЛНИТЬ:** Согласие на обработку ПДн в рамках оферты
## 📊 ИТОГОВАЯ ОЦЕНКА СООТВЕТСТВИЯ 152-ФЗ (ОБНОВЛЕНО):
### ✅ **ПОЛНОЕ СООТВЕТСТВИЕ (5 из 7 документов):**
1. **Права субъектов ПДн и отзыв согласия** - требует дополнений
2. **Согласие на использование файлов cookie** - требует дополнений
3. **Политика в отношении обработки персональных данных** - требует дополнений
4. **Политика обработки данных ИИ-ассистентом** - требует дополнений
5. **Публичная оферта** - новый документ, требует создания
### ⚠️ **НЕПОЛНОЕ СООТВЕТСТВИЕ (2 из 7 документов):**
1. **Согласие на обработку персональных данных** - УПРОЩЕНО для онлайн-обслуживания
2. **Политика конфиденциальности** - УПРОЩЕНО для онлайн-обслуживания
### 🎯 **УПРОЩЕНИЯ ДЛЯ ОНЛАЙН-ОБСЛУЖИВАНИЯ:**
-**НЕ ТРЕБУЕТСЯ ФИО** покупателей (только адрес кошелька)
-**НЕ ТРЕБУЕТСЯ подпись** (согласие через интернет)
-**НЕ ТРЕБУЕТСЯ паспортные данные**
-**Минимальный набор ПДн** (email, telegram, адрес кошелька)
-**Договор через интернет-оферту** (публичная оферта)
### 🚨 **КРИТИЧЕСКИЕ НЕДОСТАТКИ:**
- **Отсутствует уведомление Роскомнадзора** (обязательно до начала обработки)
- **Отсутствует публичная оферта** (обязательно для онлайн-продаж)
- **Нужно упростить согласие** под онлайн-формат
### 📋 **ПЛАН ДОРАБОТКИ (УПРОЩЕННЫЙ):**
1. **Создать публичную оферту** с согласием на обработку ПДн
2. **Упростить согласие** под онлайн-формат (без ФИО, подписи)
3. **Дополнить** остальные документы недостающими элементами
4. **Создать** уведомление Роскомнадзора
5. **Добавить** формы заявлений для онлайн-обращений
## 🎯 Особенности DLE для документов
### **AI-аспекты:**
- **Ollama LLM модель** (встроена в Docker-контейнер)
- **Векторный поиск** (отдельный Docker-контейнер)
- **Обработка данных AI-ассистентом** для консультаций и поддержки
- **Обучение ИИ на записях звонков** и консультаций
- **Автоматизация процессов** управления продажами
- **Машинное обучение** на основе пользовательских данных
- **Анонимизация данных** при обучении ИИ-модели
- **Полная изоляция** (данные не покидают Docker-контейнеры)
### **Бизнес-аспекты:**
- Автоматизированное управление продажами
- Управление клиентской базой
- Обработка заявок на консультации
- Продажа лицензий на веб-приложение
## 📋 План реализации
### **Этап 1: Анализ требований**
- [x] Изучение структуры приложения
- [x] Определение типов данных
- [x] Анализ технологий обработки
### **Этап 2: Создание документов**
- [ ] Права субъектов ПДн и отзыв согласия
- [ ] Согласие на cookies
- [ ] Согласие на обработку ПДн
- [ ] Политика конфиденциальности
- [ ] Политика обработки ПДн
- [ ] Политика обработки данных ИИ-ассистентом
- [ ] Публичная оферта (интернет-оферта)
### **Этап 3: Интеграция в приложение**
- [ ] Создание компонентов Vue для отображения
- [ ] Модальные окна согласий
- [ ] Управление настройками cookies
- [ ] Формы отзыва согласий
### **Этап 4: Тестирование и валидация**
- [ ] Проверка соответствия 152-ФЗ
- [ ] Тестирование UI/UX
- [ ] Валидация правовых формулировок
## 🔧 Готовые компоненты системы
### **Система шаблонов:**
- `backend/scripts/seed/legalTemplatesSeed.js` - скрипт для создания системных шаблонов
- Таблица `admin_pages_simple` для хранения шаблонов
- Поддержка переменных подстановки:
- `{{company_name}}` - ООО "ЭРАЙТИ"
- `{{company_address}}` - 355007, СТАВРОПОЛЬСКИЙ КРАЙ, Г.О. ГОРОД СТАВРОПОЛЬ, Г СТАВРОПОЛЬ, УЛ БУРМИСТРОВА, Д. 65Б, ПОМЕЩ. 2
- `{{company_inn}}` - 2636220809
- `{{company_ogrn}}` - 1222600014383
- `{{responsible_person}}` - Тарабанов Александр Викторович
- `{{privacy_email}}` - 100@эрайти.рф
- `{{privacy_phone}}` - +7 (968) 269-92-64
- `{{website}}` - эрайти.рф
- `{{hosting_provider}}` - ООО "Хостланд" (ИНН: 7811142520/781401001)
- `{{hosting_type}}` - арендованный VDS сервер
### **Vue компоненты для отображения:**
- `frontend/src/views/content/TemplatesListView.vue` - список шаблонов
- `frontend/src/views/content/PageView.vue` - просмотр и редактирование документов
- `frontend/src/views/content/ContentPageView.vue` - создание новых документов
- `frontend/src/views/content/ContentSettingsView.vue` - настройки контента
### **API для работы с документами:**
- `backend/routes/pages.js` - REST API для CRUD операций
- `frontend/src/services/pagesService.js` - клиентский сервис
- Поддержка HTML и файловых форматов
- Система прав доступа и видимости документов
## 🔧 Технические требования
### **Формат документов:**
- Markdown для версионирования
- HTML для отображения в приложении
- PDF для печати/скачивания
### **Интеграция:**
- Vue.js компоненты
- Локализация (русский/английский)
- Адаптивный дизайн
- Доступность (a11y)
### **Соответствие:**
- 152-ФЗ "О персональных данных"
- 149-ФЗ "Об информации" (включая требования к cookies)
- GDPR (для международных пользователей)
- Роскомнадзор требования
## ⚖️ ОБЯЗАТЕЛЬНЫЕ ТРЕБОВАНИЯ РЕГУЛЯТОРОВ
### **152-ФЗ "О персональных данных" - обязательные элементы:**
#### **1. Согласие на обработку ПДн (ст. 9 152-ФЗ):**
-**ФИО субъекта** персональных данных
-**Наименование оператора** (ООО "ЭРАЙТИ")
-**Цели обработки** персональных данных
-**Перечень персональных данных** на обработку которых дается согласие
-**Способы обработки** персональных данных
-**Срок действия согласия** и способ его отзыва
-**Подпись субъекта** персональных данных
-**Дата получения согласия**
#### **2. Политика обработки ПДн (ст. 18.1 152-ФЗ):**
-**Наименование и адрес оператора** (ООО "ЭРАЙТИ")
-**Цели обработки** персональных данных
-**Правовые основания** обработки персональных данных
-**Категории обрабатываемых** персональных данных
-**Категории субъектов** персональных данных
-**Сроки обработки** персональных данных
-**Сроки хранения** персональных данных
-**Порядок осуществления** субъектом ПДн своих прав
-**Информация о реализуемых** требованиях к защите ПДн
#### **3. Права субъектов ПДн (ст. 14 152-ФЗ):**
-**Право на получение информации** об обработке ПДн
-**Право на уточнение** персональных данных
-**Право на блокирование** обработки ПДн
-**Право на уничтожение** персональных данных
-**Право на отзыв согласия** на обработку ПДн
-**Сроки рассмотрения** обращений (30 дней)
#### **4. Уведомление Роскомнадзора (ст. 22 152-ФЗ):**
-**Обязательно** для ООО "ЭРАЙТИ" как оператора ПДн
-**Срок подачи:** до начала обработки ПДн
-**Содержание:** цели, категории, сроки обработки
#### **5. Технические требования:**
-**Шифрование** персональных данных
-**Контроль доступа** к персональным данным
-**Учет действий** с персональными данными
-**Резервное копирование** персональных данных
-**Уничтожение** персональных данных
### **149-ФЗ "Об информации" - дополнительные требования:**
-**Информация о владельце** информационных ресурсов
-**Порядок предоставления** информации
-**Ответственность** за нарушение требований
### **Требования к cookies (ст. 15.1 149-ФЗ):**
-**Информирование** о использовании cookies
-**Согласие** на использование cookies
-**Возможность отключения** cookies
-**Цели использования** cookies
## 🚨 КРИТИЧЕСКИ ВАЖНЫЕ НЕДОСТАЮЩИЕ ЭЛЕМЕНТЫ
### **1. Уведомление Роскомнадзора (ОБЯЗАТЕЛЬНО!):**
-**НЕ ПОДАНО** уведомление об обработке ПДн
- ⚠️ **Штрафы:** до 75,000 руб. за неподачу уведомления
- 📋 **Содержание уведомления:**
- Цели обработки ПДн
- Категории обрабатываемых ПДн
- Категории субъектов ПДн
- Сроки обработки ПДн
- Сведения о лицах, имеющих доступ к ПДн
### **2. Локальные акты (ОБЯЗАТЕЛЬНО!):**
-**Приказ о назначении ответственного** за обработку ПДн
-**Положение об обработке ПДн** (локальный акт)
-**Регламент обращений субъектов** ПДн
-**Политика безопасности** персональных данных
### **3. Технические меры защиты:**
-**Аттестация ИСПДн** (если требуется)
-**Акт классификации** информационной системы
-**Модель угроз** безопасности ПДн
-**План мероприятий** по обеспечению безопасности
### **4. Документооборот:**
-**Журнал учета** обращений субъектов ПДн
-**Журнал учета** носителей ПДн
-**Реестр операций** с ПДн
-**Соглашения о конфиденциальности** с сотрудниками
### **5. Обучение персонала:**
-**Программа обучения** по защите ПДн
-**Журнал инструктажей** по работе с ПДн
-**Обязательства о неразглашении** ПДн
## ⚠️ РЕКОМЕНДАЦИИ ПО ПРИОРИТЕТУ:
### **НЕМЕДЛЕННО (до начала обработки ПДн):**
1. **Подать уведомление** в Роскомнадзор
2. **Создать приказ** о назначении ответственного
3. **Разработать положение** об обработке ПДн
### **В ТЕЧЕНИЕ 30 ДНЕЙ:**
1. **Создать регламенты** обращений субъектов
2. **Разработать политику** безопасности
3. **Провести обучение** персонала
### **В ТЕЧЕНИЕ 90 ДНЕЙ:**
1. **Провести аттестацию** ИСПДн (если требуется)
2. **Разработать модель** угроз
3. **Создать план мероприятий** по безопасности
## 🎯 Критерии успеха
1. ✅ Полное соответствие российскому законодательству
2. ✅ Понятность для пользователей
3. ✅ Техническая интеграция в приложение
4. ✅ Юридическая валидность
5. ✅ Удобство использования

View File

@@ -34,11 +34,13 @@ docker exec dapp-postgres psql -U dapp_user -d dapp_db -c "
INSERT INTO rpc_providers (network_id_encrypted, rpc_url_encrypted, chain_id) INSERT INTO rpc_providers (network_id_encrypted, rpc_url_encrypted, chain_id)
VALUES VALUES
(encrypt_text('sepolia', '$ENCRYPTION_KEY'), encrypt_text('https://1rpc.io/sepolia', '$ENCRYPTION_KEY'), 11155111), (encrypt_text('sepolia', '$ENCRYPTION_KEY'), encrypt_text('https://1rpc.io/sepolia', '$ENCRYPTION_KEY'), 11155111),
(encrypt_text('holesky', '$ENCRYPTION_KEY'), encrypt_text('https://ethereum-holesky.publicnode.com', '$ENCRYPTION_KEY'), 17000) (encrypt_text('arbitrum-sepolia', '$ENCRYPTION_KEY'), encrypt_text('https://sepolia-rollup.arbitrum.io/rpc', '$ENCRYPTION_KEY'), 421614),
(encrypt_text('base-sepolia', '$ENCRYPTION_KEY'), encrypt_text('https://sepolia.base.org', '$ENCRYPTION_KEY'), 84532)
ON CONFLICT DO NOTHING;" ON CONFLICT DO NOTHING;"
docker exec dapp-postgres psql -U dapp_user -d dapp_db -c " docker exec dapp-postgres psql -U dapp_user -d dapp_db -c "
INSERT INTO auth_tokens (name_encrypted, address_encrypted, network_encrypted, min_balance, readonly_threshold, editor_threshold) INSERT INTO auth_tokens (name_encrypted, address_encrypted, network_encrypted, min_balance, readonly_threshold, editor_threshold)
VALUES VALUES
(encrypt_text('DLE', '$ENCRYPTION_KEY'), encrypt_text('0x2F2F070AA10bD3Ea14949b9953E2040a05421B17', '$ENCRYPTION_KEY'), encrypt_text('holesky', '$ENCRYPTION_KEY'), 1.000000000000000000, 1, 1), (encrypt_text('DLE', '$ENCRYPTION_KEY'), encrypt_text('0xdD27a91692da59d1Ee7dD1Fb342B9f1B5FF29386', '$ENCRYPTION_KEY'), encrypt_text('sepolia', '$ENCRYPTION_KEY'), 1.000000000000000000, 1, 1),
(encrypt_text('DLE', '$ENCRYPTION_KEY'), encrypt_text('0x2F2F070AA10bD3Ea14949b9953E2040a05421B17', '$ENCRYPTION_KEY'), encrypt_text('sepolia', '$ENCRYPTION_KEY'), 1.000000000000000000, 1, 1) (encrypt_text('DLE', '$ENCRYPTION_KEY'), encrypt_text('0xdD27a91692da59d1Ee7dD1Fb342B9f1B5FF29386', '$ENCRYPTION_KEY'), encrypt_text('arbitrum-sepolia', '$ENCRYPTION_KEY'), 1.000000000000000000, 1, 1),
(encrypt_text('DLE', '$ENCRYPTION_KEY'), encrypt_text('0xdD27a91692da59d1Ee7dD1Fb342B9f1B5FF29386', '$ENCRYPTION_KEY'), encrypt_text('base-sepolia', '$ENCRYPTION_KEY'), 1.000000000000000000, 1, 1)
ON CONFLICT DO NOTHING;" ON CONFLICT DO NOTHING;"