Przejdź do głównej zawartości

SharePoint

Integracja z platformą SharePoint umożliwia Speedwave interakcję z bibliotekami dokumentów, nowoczesnymi stronami witryn oraz listami w ramach wybranego zbioru witryn Microsoft 365 za pośrednictwem Microsoft Graph.

Worker SharePoint działa w odrębnym kontenerze. Długoterminowe poświadczenia OAuth (client_id, tenant_id, refresh_token) są bezpiecznie przechowywane na Twoim komputerze (hoście) w pliku ~/.speedwave/oauth/<projekt>/sharepoint.json. Demon hosta automatycznie odświeża tokeny z serwerami tożsamości Microsoft, montując do kontenera wyłącznie krótkoterminowy access_token oraz identyfikator site_id:

  • Folder~/.speedwave/oauth/<projekt>/
    • sharepoint.json (Poświadczenia na hoście)
  • Folder/tokens/ (Montowane do kontenera tylko do odczytu)
    • access_token
    • site_id
flowchart LR
  A[Worker SharePoint] -->|Wymiana / błąd 401| B[Pośrednik OAuth na hoście]
  B -->|Token odświeżania| C[Endpoint Microsoft OAuth]
  C -->|Token dostępu| D["/tokens/access_token"]
  D -->|Odczyt tokena| A

Worker udostępnia 28 operacji dla bibliotek plików, stron oraz list:

NarzędzieZakres działania
listFileIdsPrzeglądanie struktury plików i katalogów w bibliotece dokumentów.
getFileFullOdczyt metadanych plików i właściwości pobierania.
downloadFilePobieranie plików z SharePoint do lokalnego katalogu /workspace.
uploadFileWysyłanie lokalnych plików do SharePoint z kontrolą wersji ETag.
listPagesWykaz nowoczesnych stron w witrynie.
getPagePobieranie układu strony i definicji składników web part.
createPageTworzenie nowoczesnych stron w SharePoint.
updatePagePełna aktualizacja układu i zawartości strony.
addWebPartDodawanie komponentów web part do stron.
updateWebPartModyfikacja właściwości istniejących składników web part.
removeWebPartUsuwanie web partów ze stron.
publishPagePublikowanie szkiców stron do stanu widocznego dla użytkowników.
addImageWebPartWstawianie komponentów graficznych z zasobów witryny.
generateTableOfContentsGenerowanie spisu treści z nagłówków strony.
listListsLista tabel i list danych w witrynie.
getListOdczyt definicji struktury listy i kolumn.
createListTworzenie nowych list SharePoint (wymaga uprawnienia Sites.Manage.All).
updateListModyfikacja tytułu, opisu lub ustawień listy.
deleteListTrwałe usuwanie listy.
addListColumnDodawanie typowanych kolumn do listy (wymaga Sites.Manage.All).
removeListColumnUsuwanie kolumn z listy.
listItemsPobieranie rekordów listy z obsługą filtrów OData $filter.
getItemOdczyt pojedynczego wiersza z listy.
createItemDodawanie nowych rekordów do listy.
updateItemModyfikacja istniejących wierszy w liście.
deleteItemUsuwanie elementów listy.
deletePageUsuwanie stron witryny.
getCurrentUserOdczyt profilu zalogowanego użytkownika.

Operacje dyskowe podlegają rygorystycznej walidacji ścieżek, uniemożliwiając odczyt lub nadpisanie plików konfiguracyjnych (.git, .env, .speedwave, .ssh). Ścieżki w SharePoint podaje się względem katalogu głównego biblioteki dokumentów witryny, tak jak zwraca je narzędzie listFileIds. Odrzucane są ścieżki zawierające .., rozpoczynające się od ukośnika lub ukośnika odwrotnego, zawierające dwukropek (np. literę dysku) albo bajt zerowy, a także ścieżki ze strukturą kodowania URL zagnieżdżoną na więcej niż pięciu poziomach.

Integracja wymaga zarejestrowania aplikacji w Azure AD i autoryzacji w przepływie Device Flow:

site_id
acme.sharepoint.com:/sites/Marketing:
  1. W aplikacji Desktop przejdź do widoku Integracje -> SharePoint.
  2. Wprowadź client_id, tenant_id oraz site_id.
  3. Rozpocznij połączenie i zatwierdź kod logowania pod adresem https://microsoft.com/devicelogin.
  4. Zaakceptuj wymagane uprawnienia w Azure AD (Sites.Manage.All, Files.ReadWrite.All, User.Read, offline_access).
  5. Zapisz ustawienia, aby aktywować workera.

Worker SharePoint łączy się wyłącznie z API Microsoft Graph w granicach wskazanego zbioru witryn. Długoterminowe tokeny odświeżania nie opuszczają Twojej maszyny lokalnej. Szczegółowe zasady separacji sekretów opisano w rozdziale Zarządzanie poświadczeniami.