Files
tnsu-approval-route/backend/Tnsu.ApprovalRoute.Infrastructure/SharePoint/SharePointOptions.cs
T
gorbenko.pavel a1e6c5c8b4
Tests / frontend-test (pull_request) Successful in 47s
Tests / backend-test (pull_request) Successful in 2m36s
подписка
2026-08-19 13:31:38 +05:00

35 lines
2.1 KiB
C#

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