๐ Shared Instructions: shared-instructions.md - Cross-cutting concerns.
Check for memory-bank.md per shared-instructions.md.
Get the connection as described in connector-reference.md.
CLI 1.3.0+ (PA_INLINE_CONNECTIONS=yes): tell the user that adding OneDrive for Business may create a connection with their account, then run the add without -c and handle the result with the outcome table in connector-reference.md:
pa app add data-source --connector onedriveforbusiness --non-interactive
Older CLIs: run /list-connections to find the OneDrive for Business connection ID (if none exists, create one with pa connection create as described in connector-reference.md), then:
pa app add data-source --connector onedriveforbusiness -c <connection-id>
Ask the user what file operations they need (list files, upload, download, create folder, etc.).
The generated service is OneDriveforBusinessService (lowercase "for"), and its methods take positional parameters. Confirm names and signatures in src/generated/services/ before using them.
Common operations:
import { OneDriveforBusinessService } from "../generated/services/OneDriveforBusinessService";
// List the files and folders in the root folder
const root = await OneDriveforBusinessService.ListRootFolder();
const rootItems = root.data ?? [];
// List a subfolder by its Id (from an earlier listing); returns a page of items
const folder = await OneDriveforBusinessService.ListFolderV2("<folder-id>");
const folderItems = folder.data?.value ?? [];
// Get file metadata and content
const metadata = await OneDriveforBusinessService.GetFileMetadata("<file-id>");
const content = await OneDriveforBusinessService.GetFileContent("<file-id>");
// Create a file
await OneDriveforBusinessService.CreateFile("/Documents", "report.txt", "File content here");
Key points:
ListRootFolder() instead of passing "root" as a folder ID. ListFolderV2 takes the Id of a folder returned by an earlier listing.ListFolderV2, not ListFolder, which the connector has deprecated. ListFolderV2 returns a page: the items are in value, and nextLink is set when there are more.folderPath for creating files by path, id for accessing existing filesUse Grep to find specific methods in src/generated/services/OneDriveforBusinessService.ts (generated files can be very large -- see connector-reference.md).
npm run build
Fix TypeScript errors before proceeding. Do NOT deploy yet.
Update memory-bank.md with: connector added, configured operations, build status.