n8n-nodes-novapost
v0.1.6
Published
Nova Poshta API integration for n8n with license system. Track packages, manage waybills, and access Nova Poshta services directly from your workflows.
Downloads
713
Maintainers
Readme
Nova Poshta Node для n8n
Custom node для интеграции n8n с API Новой Почты
�� Структура проекта
NovaPost/
├── credentials/ # Credentials для n8n
│ └── NovaPoshtaApi.credentials.ts ✅
├── noda/ # Основной код ноды
│ ├── constants.ts ✅ Константы (URLs, timeout, cache config)
│ ├── types.ts ✅ TypeScript типы
│ ├── NovaPoshta.node.ts ⏳ TODO
│ ├── execute.ts ⏳ TODO
│ ├── config/ # Конфигурация
│ ├── helpers/ # Вспомогательные модули
│ │ ├── api/ ⏳ TODO (GenericFunctions, operationMeta)
│ │ ├── cache/ ⏳ TODO (licenseCache, backgroundService)
│ │ ├── license/ ⏳ TODO (api, instanceId, validation)
│ │ ├── validation/ ⏳ TODO (validators)
│ │ └── docs/ # Документация helpers
│ ├── operations/ # Операции по ресурсам
│ │ ├── tracking/ ⏳ TODO
│ │ ├── delivery/ ⏳ TODO
│ │ ├── counterparty/ ⏳ TODO
│ │ ├── address/ ⏳ TODO
│ │ └── license/ ⏳ TODO
│ ├── trigger/ # Webhook триггеры
│ └── UI/ # UI параметры
├── dist/ # Собранные файлы
├── project_info/ # Документация проекта
├── ARCHITECTURE.md ✅ Архитектура
├── LICENSE_SYSTEM.md ✅ Система лицензирования
└── README.md ✅ Этот файл✅ Что сделано
1. Credentials (NovaPoshtaApi.credentials.ts)
- API Key для Nova Poshta
- Environment (production/sandbox)
- License Key для доступа к ноде
- Автоматическая аутентификация
- Тест credentials через API Nova Poshta
2. Константы (constants.ts)
- NOVAPOSHTA_BASE_URL
- DEFAULT_TIMEOUT_MS
- RETRY_CONFIG
- CACHE_CONFIG (TTL, grace period, check time)
3. Типы (types.ts)
- NovaPoshtaApiResponse - базовый ответ API
- NovaPoshtaApiCredentialData - данные credentials
- NodeParameters - параметры ноды
4. Документация
- ARCHITECTURE.md - полная архитектура n8n custom node
- LICENSE_SYSTEM.md - детальная система лицензирования
- README.md - этот файл
⏳ Следующие шаги
Фаза 1: Лицензирование (в процессе)
- ✅ Создать credentials
- ✅ Создать constants и types
- ⏳ Перенести helpers/license/ из Monobank
- api.ts - API запросы к серверу лицензий
- instanceId.ts - получение instanceId
- validation.ts - валидация лицензий
- index.ts - экспорт
- ⏳ Перенести helpers/cache/ из Monobank
- licenseCache.ts - кеширование лицензий
- backgroundService.ts - фоновое обновление
- ⏳ Перенести helpers/validation/
- validators.ts - валидация входных данных
Фаза 2: Основная нода
- Создать NovaPoshta.node.ts
- Создать execute.ts
- Создать UI/utils.ts
- Создать helpers/api/GenericFunctions.ts
Фаза 3: Операции
- Реализовать operations/license/license.ping.ts
- Реализовать базовые операции Nova Poshta
- Добавить webhook триггер
Фаза 4: Сборка и деплой
- Создать package.json
- Создать tsconfig.json
- Создать gulpfile.js
- Создать deploy.sh
🎯 Архитектура
Проект следует архитектуре Monobank node:
- Модульная структура с разделением по ресурсам
- Система кеширования лицензий (TTL 10 минут)
- Фоновое обновление лицензий
- Централизованная обработка ошибок
- Логирование всех операций
Подробнее см. ARCHITECTURE.md и LICENSE_SYSTEM.md
📝 Примечания
- Все файлы адаптированы под Nova Poshta API
- Сохранена совместимость с системой лицензирования nodiq.dev
- Используется та же архитектура что и в Monobank node
🔧 Переменные окружения
LICENSE_ENV
Определяет какой домен использовать для API лицензий:
TEST- использует https://mylocdev.fun/ (для разработки)PRODUCTION- использует https://admin.nodiq.dev/ (по умолчанию)
Пример использования:
# Для тестирования
export LICENSE_ENV=TEST
# Для продакшн
export LICENSE_ENV=PRODUCTION
# или просто не устанавливать (по умолчанию PRODUCTION)В Docker:
environment:
- LICENSE_ENV=TESTВ n8n: Добавить в переменные окружения контейнера n8n.
