feat: switch from Admin Center database export to BC API v2.0 data extraction
The Admin Center export API requires an Azure Storage SAS URI which requires an Azure Subscription - defeating the purpose of an independent backup. Instead, use BC API v2.0 to extract critical business data (customers, vendors, items, GL entries, invoices, etc.) as JSON files. - bc-export.ps1: rewritten to use BC API v2.0 endpoints, extracts 23 entity types per company with OData pagination support - bc-backup.sh: handles JSON export directory, creates tar.gz archive before encrypting and uploading to S3 - bc-backup.conf.template: removed Azure Storage SAS config, added optional BC_COMPANY_NAME filter - decrypt-backup.sh: updated for tar.gz.gpg format, shows extracted entity files and metadata after decryption Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -29,7 +29,7 @@ AZURE_CLIENT_SECRET=""
|
||||
# 1. Go to API permissions > Add a permission
|
||||
# 2. Select "Dynamics 365 Business Central"
|
||||
# 3. Select "Application permissions"
|
||||
# 4. Check "Automation.ReadWrite.All" or "API.ReadWrite.All"
|
||||
# 4. Check "API.ReadWrite.All"
|
||||
# 5. Click "Grant admin consent" (requires Global Admin)
|
||||
|
||||
# ===================================
|
||||
@@ -40,28 +40,9 @@ AZURE_CLIENT_SECRET=""
|
||||
# Find this in BC Admin Center: https://businesscentral.dynamics.com/
|
||||
BC_ENVIRONMENT_NAME=""
|
||||
|
||||
# BC Admin API version (default: v2.21)
|
||||
BC_API_VERSION="v2.21"
|
||||
|
||||
# ===================================
|
||||
# Azure Storage Configuration
|
||||
# ===================================
|
||||
# The BC Admin Center API exports the database to your Azure Storage account.
|
||||
# You need an Azure Storage account with a SAS URI that has Read, Write, Create, Delete permissions.
|
||||
#
|
||||
# To create a SAS URI:
|
||||
# 1. Go to Azure Portal > Storage Accounts > your account
|
||||
# 2. Go to "Shared access signature"
|
||||
# 3. Enable: Blob service, Container+Object resource types, Read+Write+Create+Delete permissions
|
||||
# 4. Set an appropriate expiry date
|
||||
# 5. Copy the generated SAS URL
|
||||
|
||||
# Azure Storage Account SAS URI (full URI with SAS token)
|
||||
# Example: https://youraccount.blob.core.windows.net?sv=2021-06-08&ss=b&srt=sco&sp=rwdlac&se=...&sig=...
|
||||
AZURE_STORAGE_SAS_URI=""
|
||||
|
||||
# Azure Storage container name for exports (will be created automatically)
|
||||
AZURE_STORAGE_CONTAINER="bc-exports"
|
||||
# Optional: Limit export to a specific company name
|
||||
# Leave empty to export all companies in the environment
|
||||
BC_COMPANY_NAME=""
|
||||
|
||||
# ===================================
|
||||
# Encryption Configuration
|
||||
@@ -128,9 +109,6 @@ CLEANUP_LOCAL="true"
|
||||
# Advanced Configuration
|
||||
# ===================================
|
||||
|
||||
# Maximum time to wait for BC export completion (minutes)
|
||||
# MAX_EXPORT_WAIT_MINUTES="120"
|
||||
|
||||
# Local temporary directory (default: ./temp)
|
||||
# WORK_DIR="/var/tmp/bc-backup"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user