Перейти к основному контенту

Sc.Functions

Sc.Functions

1. Назначение сервиса и зона ответственности

Сервис Sc.Functions предназначен для автоматизации резервного копирования данных из репозиториев GitHub и отправки уведомлений по электронной почте. Основная задача — обеспечить надежное резервное копирование и информирование пользователей о статусе операций.

2. Архитектура и взаимодействия

Сервис реализован как консольное приложение, которое взаимодействует с удаленными API для отправки уведомлений по электронной почте. Взаимодействия происходят через HTTP-запросы к API почтового сервиса (например, Unisender).

3. API/эндпоинты

На данный момент в коде не указаны конкретные эндпоинты, однако можно выделить следующие функции:

  • Отправка уведомлений по электронной почте через метод SendEmailNotification класса EmailSenderService.

4. Сборка/запуск

Сервис представляет собой консольное приложение на C#. Для сборки и запуска необходимо использовать .NET SDK. Запуск осуществляется через файл Program.cs, который инициирует выполнение метода FunctionHandler класса Handler.

5. Конфигурация

Конфигурация сервиса осуществляется через переменные окружения:

  • ContactListId — ID списка контактов для отправки уведомлений.
  • SenderEmail — адрес электронной почты отправителя.
  • SendEmailUrl — URL для отправки электронных писем.
  • MailerRootUrl — базовый URL API почтового сервиса.
  • MailerApiKey — API ключ для доступа к почтовому сервису.

Файл конфигурации appsettings.json также присутствует, но его содержание не указано в предоставленных фрагментах.

6. Наблюдаемость/логирование/метрики

В коде присутствует базовое логирование через Console.WriteLine, которое используется для вывода информации о процессе отправки уведомлений и возможных ошибках. Для более продвинутого мониторинга и логирования может потребоваться интеграция с системами логирования (например, Serilog или NLog).

7. Риски и TODO для следующего техдиректора

  • Безопасность: Хранение API ключей и других конфиденциальных данных в переменных окружения может быть небезопасным. Рекомендуется рассмотреть использование секретных хранилищ.
  • Обработка ошибок: Необходимо улучшить обработку ошибок и исключений, чтобы обеспечить более надежное поведение сервиса в случае сбоя.
  • Тестирование: Добавить юнит-тесты для проверки функциональности сервиса.
  • Документация: Убедиться, что вся документация актуальна и включает примеры использования API.
  • Оптимизация: Рассмотреть возможность оптимизации кода, особенно в части работы с HTTP-запросами и обработкой ответов.

ARCHITECTURE — Sc.Functions

Обзор

  • Путь: D:/Repository/sense-documentaion/Sense-Capital/Sc.Functions
  • Языки: —
  • Фреймворки: —
  • Unity: нет
  • Хранилища: —
  • Брокеры: —
  • Файлов: 29; LOC (оценка): C#: ~458, JavaScript: ~384

Диаграммы

container.mmd

flowchart LR
  user([User]) --> app[Sc.Functions App]

Structurizr DSL: D:/Repository/sense-documentaion/Sense-Capital/Sc.Functions/docs/diagrams/workspace.dsl