namespace Tnsu.ApprovalRoute.Infrastructure.SharePoint; public sealed class SharePointOptions { /// Тенант Entra — тот же, что у остальной авторизации. public string TenantId { get; set; } = string.Empty; /// /// Приложение, от имени которого идём в SharePoint. Ему нужны разрешения /// уровня приложения на чтение списков, выданные администратором тенанта. /// public string ClientId { get; set; } = string.Empty; /// Ключ в таблице settings, под которым лежит .pfx (option_name). public string CertificateSettingName { get; set; } = "AzurePfx"; /// /// Пароль от .pfx. Намеренно берётся из конфигурации, а не зашивается в код: /// в api-tnsu-portal он захардкожен в PostgresCertificateProvider, и повторять /// это здесь не стоит — пароль от сертификата в исходниках не место. /// public string CertificatePassword { get; set; } = string.Empty; /// /// Куда SharePoint будет присылать уведомления об изменениях списка — параметр /// notificationUrl ручки POST /Webhook/Subscribe, которой новый список данных /// подписывается на уведомления (см. HttpSharePointWebhookSubscriber). /// Это приёмник на СТОРОНЕ ПОРТАЛА, а не адрес нашего сервиса. /// /// Пусто — подписывать не будем вовсе: без адреса приёмника подписка /// бессмысленна, и это же единственный способ её выключить. /// public string NotificationUrl { get; set; } = "https://api.tnsu.kz/Webhook/SharePoint"; }