128 lines
4.4 KiB
Markdown
128 lines
4.4 KiB
Markdown
# 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
|
|
|
|
### 3. Azure AD App Credentials (Recommended Method)
|
|
|
|
#### Step 1: Register App in Azure AD
|
|
1. Go to [Azure Portal](https://portal.azure.com)
|
|
2. Navigate to **Azure Active Directory** → **App 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`:
|
|
|
|
```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**:
|
|
```bash
|
|
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
|
|
|