vendor_report/SHAREPOINT_SETUP.md
2025-11-06 20:50:19 +04:00

4.4 KiB

SharePoint Configuration Guide

This guide will help you get the configuration values needed to connect to SharePoint.

Quick Answer: Where to Get Configuration Values

1. SharePoint Site URL

  • Go to your SharePoint site in a browser
  • Copy the URL from the address bar
  • Example: https://yourcompany.sharepoint.com/sites/YourSiteName
  • Important: Include /sites/SiteName if it's a subsite

2. Folder Path

  • Navigate to the folder containing your Excel files in SharePoint
  • Right-click the folder → "Copy path" or "Details"
  • Example: /Shared Documents/Reports or /sites/YourSite/Shared Documents/Vendor Reports
  • Tip: In SharePoint, go to the folder, click "..." menu → "Copy link" and extract the path

Step 1: Register App in Azure AD

  1. Go to Azure Portal
  2. Navigate to Azure Active DirectoryApp registrations
  3. Click New registration
  4. Name it (e.g., "Vendor Report Generator")
  5. Select Accounts in this organizational directory only
  6. Click Register

Step 2: Create Client Secret

  1. In your app, go to Certificates & secrets
  2. Click New client secret
  3. Add description (e.g., "Vendor Report Secret")
  4. Choose expiration (recommend 24 months)
  5. Click Add
  6. IMPORTANT: Copy the Value immediately (you won't see it again!)
    • This is your client_secret

Step 3: Get Client ID

  1. In your app, go to Overview
  2. Copy the Application (client) ID
    • This is your client_id

Step 4: Grant SharePoint Permissions

  1. In your app, go to API permissions
  2. Click Add a permission
  3. Select SharePoint
  4. Choose Application permissions (not Delegated)
  5. Select Sites.Read.All (or Sites.ReadWrite.All if you need write access)
  6. Click Add permissions
  7. Click Grant admin consent (important!)
  8. Wait for status to show "Granted for [Your Organization]"

4. Alternative: User Credentials (Less Secure)

If you can't use app authentication:

  • username: Your SharePoint/Office 365 email
  • password: Your password (not recommended for automation)

Complete Configuration Example

Once you have all values, add them to config.yaml:

sharepoint:
  enabled: true
  site_url: "https://yourcompany.sharepoint.com/sites/YourSite"
  folder_path: "/Shared Documents/Reports"  # Path to your Excel files folder
  local_dir: "reports"  # Where to save downloaded files
  use_app_authentication: true  # Use app auth (recommended)
  client_id: "12345678-1234-1234-1234-123456789abc"  # From Azure AD
  client_secret: "your-secret-value-here"  # From Azure AD (the Value, not Secret ID!)
  file_pattern: "*.xlsx"  # Only download Excel files
  overwrite: true  # Overwrite existing files

Testing Your Configuration

  1. Test SharePoint connection:

    python sharepoint_downloader.py
    
  2. Or use the Web UI:

    • Start: python web_ui.py
    • Open: http://localhost:8080
    • Click "Update Data from SharePoint"
    • Check for errors

Common Issues

"SharePoint authentication failed"

  • Check: Client ID and secret are correct
  • Check: App has been granted admin consent
  • Check: Permissions are "Application permissions" (not Delegated)

"Folder not found"

  • Check: Folder path is correct (case-sensitive)
  • Tip: Use SharePoint's "Copy path" feature
  • Check: Path starts with / (e.g., /Shared Documents/...)

"No files downloaded"

  • Check: Folder contains Excel files (.xlsx or .xls)
  • Check: File pattern matches your files
  • Check: You have read permissions to the folder

"Access denied"

  • Check: App has Sites.Read.All permission
  • Check: Admin consent has been granted
  • Check: App is registered in the same tenant as SharePoint

Security Best Practices

  1. Use App Authentication (not user credentials)
  2. Store secrets securely:
    • Use environment variables in production
    • Never commit config.yaml with secrets to git
    • Use a secrets manager for production
  3. Limit permissions: Only grant Sites.Read.All (not write access unless needed)
  4. Rotate secrets: Update client secrets regularly

Getting Help

If you're stuck:

  1. Check the terminal/console for detailed error messages
  2. Verify each configuration value step by step
  3. Test with a simple folder first (one Excel file)
  4. Check Azure AD app status in Azure Portal