À propos du projet
cb365 offre un accès en ligne de commande aux services Microsoft 365, servant d'alternative à l'écriture d'applications Graph API personnalisées ou à l'interaction manuelle avec une interface graphique. Il permet l'automatisation de tâches telles que la création de tâches, l'envoi de mails, la gestion de calendriers, la publication sur Teams, et l'interaction avec SharePoint, OneDrive, Planner et Loop. L'outil fournit une sortie JSON structurée, le rendant adapté à la consommation par des scripts et des agents IA.
Les fonctionnalités clés et les publics cibles incluent :
* **DevOps et ingénieurs plateforme** : Pour scripter des opérations M365 comme créer des tâches depuis CI ou publier les résultats de build sur Teams.
* **Constructeurs d'agents IA** : Conçu avec une sortie `--json` et des indicateurs de sécurité pour les workflows autonomes.
* **Administrateurs IT** : Une alternative CLI à PowerShell pour les opérations Graph API.
* **Développeurs** : Réduit le code boilerplate du SDK Graph pour les tâches M365 courantes.
cb365 enveloppe l'API Microsoft Graph, gérant les complexités suivantes :
* **Authentification** : Supporte les flux device-code, credentials client et certificats, stockant les jetons de manière sécurisée dans le trousseau du système d'exploitation.
* **Sécurité** : Intègre 44 règles intégrées, nécessitant `--force` pour les suppressions et `--confirm` pour les diffusions, avec `--dry-run` disponible pour toutes les opérations d'écriture. Les jetons ne sont jamais exposés dans les sorties.
* **Sortie** : Fournit des formats `--json`, `--plain` (TSV) et tableau lisibles par un humain, conçus pour l'intégration dans les pipelines.
* **Profils** : Gère l'authentification déléguée et app-only côte à côte, permettant un changement facile de locataire.
* **Aucune dépendance** : Un binaire Go unique sans exigences d'exécution.
L'installation est disponible via `go install` ou des binaires de version préconstruits. Les utilisateurs doivent enregistrer une application Entra ID et configurer les autorisations API nécessaires. L'authentification supporte le mode délégué (device code) pour un usage interactif, et le mode app-only (secret client ou certificat) pour l'automatisation non assistée, les secrets clients étant acceptés uniquement depuis l'entrée standard pour des raisons de sécurité.
Des commandes sont disponibles pour divers services M365 :
* **Auth** : Connexion, statut, déconnexion, gestion des profils.
* **To Do** : Lister, créer, mettre à jour, terminer et supprimer des listes et tâches.
* **Mail** : Lister, obtenir, marquer comme lu, déplacer, supprimer définitivement, rédiger, envoyer et rechercher des messages.
* **Calendrier** : Lister, obtenir, créer, mettre à jour et supprimer des événements.
* **Contacts** : Lister, obtenir, rechercher, créer et mettre à jour des contacts.
* **Planner** : Lister les plans, créer des plans, gérer les seaux et gérer les tâches.
* **Teams** : Lister les canaux, envoyer des messages aux canaux et chats, et supprimer soft des messages de canaux.
* **SharePoint** : Lister/rechercher des sites, obtenir les détails du site, gérer les listes et éléments de liste, et gérer les fichiers (list, get, upload).
* **OneDrive** : Lister, obtenir, télécharger, supprimer des fichiers et créer des dossiers.
* **Loop** : Lister les espaces de travail et pages, télécharger/exporter des pages, supprimer des pages, télécharger des fichiers et créer des dossiers.
Les indicateurs globaux incluent `--json`, `--plain`, `--profile`, `--dry-run` et `--verbose`. L'outil insiste sur le fait de garder le contenu métier hors des arguments de processus en supportant les valeurs indirectes provenant de fichiers ou de stdin. Les règles de sécurité sont intégrées, couvrant la protection contre l'écriture, les règles spécifiques au calendrier (par ex. validation du fuseau horaire, détection des doublons, garde-fous du nombre de participants), la sécurité des mails (par ex. `--confirm` pour l'envoi, gardes-fous du nombre de destinataires), et la sécurité des jetons (stockage sécurisé, pas d'exposition dans les sorties).
Pour l'intégration d'agents IA, la sortie `--json` fournit des données structurées. Les agents sont conseillés de traiter le contenu M365 comme des données non fiables et d'utiliser des listes blanches explicites pour les commandes et des indicateurs de confirmation pour les effets secondaires. La gestion des erreurs utilise les codes de sortie Unix standards, avec les erreurs imprimées sur stderr.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.