Об этом проекте
cb365 предоставляет доступ к службам Microsoft 365 через командную строку, выступая альтернативой написанию собственных приложений Graph API или ручному взаимодействию с интерфейсом. Он позволяет автоматизировать такие задачи, как создание задач, отправка почты, управление календарями, публикация в Teams, а также работа с SharePoint, OneDrive, Planner и Loop. Инструмент обеспечивает структурированный вывод в формате JSON, что делает его удобным для использования скриптами и ИИ-агентами.
Ключевые функции и целевые аудитории включают:
* **DevOps и платформенные инженеры**: для скриптования операций M365, таких как создание задач из CI или публикация результатов сборки в Teams.
* **Разработчики ИИ-агентов**: спроектирован с выводом `--json` и флагами безопасности для автономных рабочих процессов.
* **ИТ-администраторы**: альтернатива PowerShell в CLI для операций с Graph API.
* **Разработчики**: сокращает объем шаблонного кода Graph SDK для общих задач M365.
cb365 инкапсулирует Microsoft Graph API, обрабатывая такие сложности, как:
* **Аутентификация**: поддерживает потоки device-code, client credentials и сертификатов, безопасно храня токены в системном хранилище ключей (keychain).
* **Безопасность**: включает 44 жестко закодированных правила, требующие `--force` для удаления и `--confirm` для массовых рассылок, при этом `--dry-run` доступен для всех операций записи. Токены никогда не отображаются в выводе.
* **Вывод**: предоставляет форматы `--json`, `--plain` (TSV) и читаемые таблицы, разработанные для интеграции в конвейеры.
* **Профили**: управляет делегированной и прикладной (app-only) аутентификацией параллельно, позволяя легко переключаться между арендаторами.
* **Отсутствие зависимостей**: единый бинарный файл Go без требований к среде выполнения.
Установка доступна через `go install` или готовые релизные бинарные файлы. Пользователи должны зарегистрировать приложение Entra ID и настроить необходимые разрешения API. Аутентификация поддерживает делегированный режим (device code) для интерактивного использования и режим только для приложений (client secret или сертификат) для автоматизации без участия человека, при этом секреты клиента принимаются только из стандартного ввода в целях безопасности.
Доступны команды для различных рабочих нагрузок M365:
* **Auth**: вход, статус, выход, управление профилями.
* **To Do**: просмотр, создание, обновление, выполнение и удаление списков задач и самих задач.
* **Mail**: просмотр, получение, отметка прочитанного, перемещение, окончательное удаление, черновики, отправка и поиск сообщений.
* **Calendar**: просмотр, получение, создание, обновление и удаление событий.
* **Contacts**: просмотр, получение, поиск, создание и обновление контактов.
* **Planner**: просмотр планов, создание планов, управление корзинами (buckets) и задачами.
* **Teams**: просмотр каналов, отправка сообщений в каналы и чаты, мягкое удаление сообщений в каналах.
* **SharePoint**: просмотр/поиск сайтов, получение деталей сайта, управление списками и элементами списков, управление файлами (просмотр, получение, загрузка).
* **OneDrive**: просмотр, получение, загрузка, удаление файлов и создание папок.
* **Loop**: просмотр рабочих пространств и страниц, загрузка/экспорт страниц, удаление страниц, загрузка файлов и создание папок.
Глобальные флаги включают `--json`, `--plain`, `--profile`, `--dry-run` и `--verbose`. Инструмент делает акцент на том, чтобы держать бизнес-контент вне аргументов процесса, поддерживая косвенные значения из файлов или стандартного ввода. Правила безопасности жестко закодированы и охватывают защиту от записи, специфичные для календаря правила (например, проверка часового пояса, обнаружение дубликатов, ограничения на количество участников), безопасность почты (например, `--confirm` для отправки, ограничения на количество получателей) и безопасность токенов (безопасное хранение, отсутствие раскрытия в выводе).
Для интеграции с ИИ-агентами вывод `--json` предоставляет структурированные данные. Агентам рекомендуется рассматривать контент M365 как недоверенные данные и использовать явные списки разрешенных команд, а также флаги подтверждения для операций с побочными эффектами. Обработка ошибок использует стандартные коды выхода Unix, при этом ошибки выводятся в stderr.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.