UNPKG

adpa-enterprise-framework-automation

Version:

Modular, standards-compliant Node.js/TypeScript automation framework for enterprise requirements, project, and data management. Provides CLI and API for BABOK v3, PMBOK 7th Edition, and DMBOK 2.0 (in progress). Production-ready Express.js API with TypeSpe

318 lines (245 loc) 9.12 kB
# SharePoint Integration Usage Guide ## Overview The SharePoint integration in Requirements Gathering Agent v2.1.3 enables you to automatically publish generated documents to SharePoint Online document libraries. This feature provides enterprise-grade document management with Azure authentication, metadata tagging, and version control. ## Features - **Microsoft Graph API Integration**: Secure, enterprise-grade authentication - **OAuth2 Authentication**: Azure AD integration with device code flow - **Automatic Folder Creation**: Creates organized folder structures - **Metadata Management**: Adds custom metadata to published documents - **Batch Publishing**: Efficiently publish multiple documents - **Version Control**: SharePoint's built-in versioning support - **Enterprise Security**: Follows Azure security best practices ## Quick Start ### 1. Prerequisites Before using SharePoint integration, ensure you have: - SharePoint Online subscription - Azure AD tenant - Azure App Registration with appropriate permissions - SharePoint site and document library ready ### 2. Azure App Registration Setup 1. **Create App Registration in Azure Portal**: - Go to Azure Portal → Azure Active Directory → App registrations - Click "New registration" - Name: "Requirements Gathering Agent" - Supported account types: "Accounts in this organizational directory only" - Redirect URI: `http://localhost:3000/auth/callback` 2. **Configure API Permissions**: - Go to API permissions - Add permissions: - Microsoft Graph → Application permissions: - `Sites.ReadWrite.All` - `Files.ReadWrite.All` - `User.Read` 3. **Grant Admin Consent**: - Click "Grant admin consent for [Your Tenant]" 4. **Note Configuration Details**: - Application (client) ID - Directory (tenant) ID ### 3. Initialize SharePoint Configuration ```bash # Initialize SharePoint configuration npm run sharepoint:init ``` You'll be prompted to provide: - **Azure Tenant ID**: Your Azure AD tenant ID - **Client ID**: Your app registration client ID - **SharePoint Site URL**: Full URL to your SharePoint site - **Document Library**: Name of the document library (default: "Documents") - **Folder Path**: Optional default folder path - **Label Prefix**: Metadata label prefix (default: "adpa") ### 4. Authenticate with SharePoint ```bash # Login to SharePoint via OAuth2 npm run sharepoint:oauth2:login ``` This will: - Start the OAuth2 device code flow - Open a browser for authentication - Store authentication tokens securely ### 5. Test Connection ```bash # Test SharePoint connectivity npm run sharepoint:test ``` ### 6. Publish Documents ```bash # Publish all generated documents npm run sharepoint:publish # Publish with specific folder path npm run sharepoint:publish --folder-path "/Projects/MyProject" # Dry run (preview only) npm run sharepoint:publish --dry-run # Force publish (skip validation) npm run sharepoint:publish --force ``` ## CLI Commands ### Configuration Commands | Command | Description | |---------|-------------| | `sharepoint init` | Initialize SharePoint configuration | | `sharepoint status` | Show integration status and configuration | ### Authentication Commands | Command | Description | |---------|-------------| | `sharepoint oauth2 login` | Start OAuth2 authentication | | `sharepoint oauth2 status` | Check authentication status | | `sharepoint oauth2 debug` | Debug authentication issues | ### Publishing Commands | Command | Description | |---------|-------------| | `sharepoint test` | Test SharePoint connectivity | | `sharepoint publish` | Publish documents to SharePoint | ### Publishing Options | Option | Description | Example | |--------|-------------|---------| | `--folder-path <path>` | Target folder path | `--folder-path "/Projects/Documentation"` | | `--label-prefix <prefix>` | Metadata label prefix | `--label-prefix "myproject"` | | `--dry-run` | Preview mode (no actual publishing) | `--dry-run` | | `--force` | Force publish despite validation errors | `--force` | ## Configuration File The SharePoint configuration is stored in `config-rga.json`: ```json { "sharepoint": { "tenantId": "your-tenant-id", "clientId": "your-client-id", "siteUrl": "https://yourtenant.sharepoint.com/sites/yoursite", "documentLibrary": "Documents", "authMethod": "oauth2", "rootFolderPath": "/Projects", "oauth2": { "redirectUri": "http://localhost:3000/auth/callback", "scopes": [ "https://graph.microsoft.com/Sites.ReadWrite.All", "https://graph.microsoft.com/Files.ReadWrite.All", "https://graph.microsoft.com/User.Read" ], "authority": "https://login.microsoftonline.com/your-tenant-id" }, "publishingOptions": { "enableVersioning": true, "createFolders": true, "overwriteExisting": false, "addMetadata": true } } } ``` ## Metadata Schema Published documents include comprehensive metadata: - **GeneratedBy**: ADPA v2.1.3 - **GeneratedDate**: ISO timestamp - **DocumentType**: Project Documentation - **ProjectPhase**: Derived from document content - **PMBOKCategory**: PMBOK knowledge area - **ADPAVersion**: Version of the generator - **Custom Labels**: Based on label prefix ## Folder Structure Documents are organized in SharePoint using this structure: ``` /[Root Folder Path]/ ├── Core Analysis/ │ ├── Business Case.md │ ├── Requirements Analysis.md │ └── Stakeholder Analysis.md ├── Quality Assurance/ │ ├── QA Plan.md │ ├── Test Strategy.md │ └── Quality Metrics.md ├── Technical Analysis/ │ ├── Technical Requirements.md │ ├── System Architecture.md │ └── Integration Plan.md └── Management Plans/ ├── Project Plan.md ├── Communication Plan.md └── Risk Management Plan.md ``` ## Troubleshooting ### Common Issues 1. **Authentication Failed** ```bash # Check authentication status npm run sharepoint:oauth2:status # Re-authenticate npm run sharepoint:oauth2:login ``` 2. **Permission Denied** - Ensure Azure app has required permissions - Verify admin consent is granted - Check SharePoint site permissions 3. **Site or Library Not Found** - Verify SharePoint site URL is correct - Ensure document library exists - Check site accessibility 4. **File Upload Failed** - Check file size limits - Verify folder permissions - Ensure unique file names ### Debug Commands ```bash # Show detailed configuration npm run sharepoint:status # Debug authentication npm run sharepoint:oauth2:debug # Test connectivity npm run sharepoint:test ``` ### Environment Variables For CI/CD scenarios, you can use environment variables: ```bash SHAREPOINT_TENANT_ID=your-tenant-id SHAREPOINT_CLIENT_ID=your-client-id SHAREPOINT_SITE_URL=https://yourtenant.sharepoint.com/sites/yoursite SHAREPOINT_DOCUMENT_LIBRARY=Documents ``` ## Best Practices ### Security - Use service principal authentication for production - Regularly rotate authentication tokens - Apply principle of least privilege - Monitor access logs ### Organization - Use consistent folder naming conventions - Apply meaningful metadata labels - Organize documents by project phase - Maintain version control discipline ### Performance - Use batch publishing for large document sets - Consider file size limitations - Monitor SharePoint storage quotas - Implement retry logic for failed uploads ## Integration with Other Tools ### Power Automate SharePoint integration enables Power Automate workflows: - Document approval processes - Notification systems - Content distribution - Backup and archiving ### Microsoft Teams Published documents integrate with Teams: - Channel file tabs - Collaborative editing - Meeting attachments - Project workspace integration ### Power BI Metadata enables advanced analytics: - Document generation metrics - Project progress tracking - Quality assurance reporting - Stakeholder engagement analysis ## Support and Resources - **Microsoft Graph API**: https://docs.microsoft.com/en-us/graph/ - **SharePoint REST API**: https://docs.microsoft.com/en-us/sharepoint/dev/sp-add-ins/working-with-folders-and-files-with-rest - **Azure AD Authentication**: https://docs.microsoft.com/en-us/azure/active-directory/develop/ - **ADPA Documentation**: See `docs/` folder for additional guides ## Changelog ### v2.1.3 - Initial SharePoint integration - OAuth2 authentication support - Batch document publishing - Metadata management - Enterprise security features --- **Requirements Gathering Agent v2.1.3** Celebrating 175+ weekly downloads with breakthrough SharePoint integration!