- Add Cloud for Sovereignty landing zone architecture and deployment - Implement complete legal document management system - Reorganize documentation with improved navigation - Add infrastructure improvements (Dockerfiles, K8s, monitoring) - Add operational improvements (graceful shutdown, rate limiting, caching) - Create comprehensive project structure documentation - Add Azure deployment automation scripts - Improve repository navigation and organization
5.8 KiB
5.8 KiB
Seal Deployment Automation Guide
Complete automation for Order of St John credential seal deployment.
Quick Start
One-Command Deployment:
./scripts/deploy/complete-seal-deployment.sh
This automates:
- ✅ SVG to PNG conversion (all sizes)
- ✅ File validation
- ✅ Manifest generation
- ✅ Deployment checklist
- ✅ Summary report
Automation Scripts
1. Complete Seal Preparation
Script: scripts/deploy/prepare-all-credential-seals.sh
Converts all SVG seals to PNG in multiple sizes:
- 200x200px (for credentials)
- 400x400px (high-res)
- 800x800px (print)
Usage:
./scripts/deploy/prepare-all-credential-seals.sh
Output:
- PNG files in
assets/credential-images/png/ - File manifest
- Validation report
- CDN upload script template
2. Seal Validation
Script: scripts/validation/validate-seal-files.sh
Validates:
- SVG file structure
- Maltese Cross presence
- OSJ references
- PNG file integrity
- File sizes
- Manifest template references
Usage:
./scripts/validation/validate-seal-files.sh
3. Complete Deployment
Script: scripts/deploy/complete-seal-deployment.sh
Orchestrates all steps:
- Prepare seals (convert SVG to PNG)
- Validate files
- Generate deployment checklist
- Create summary report
Usage:
./scripts/deploy/complete-seal-deployment.sh
4. Update Manifest URLs
Script: scripts/deploy/update-manifest-seal-urls.sh
Updates manifest templates with CDN URLs after upload.
Usage:
# Default CDN
./scripts/deploy/update-manifest-seal-urls.sh
# Custom CDN
CDN_BASE_URL=https://your-cdn.com/images ./scripts/deploy/update-manifest-seal-urls.sh
Workflow
Step 1: Prepare Seals
./scripts/deploy/prepare-all-credential-seals.sh
This creates:
- PNG files in all required sizes
- File manifest
- Validation report
- Upload script template
Step 2: Validate
./scripts/validation/validate-seal-files.sh
Checks:
- All required seals exist
- SVG structure is valid
- PNG files are valid
- File sizes are appropriate
Step 3: Review
Review generated files:
assets/credential-images/png/MANIFEST.txtassets/credential-images/png/VALIDATION_REPORT.txt- Check PNG quality
Step 4: Upload to CDN
cd assets/credential-images/png
./upload-to-cdn.sh
Or manually upload to your CDN provider.
Step 5: Update Manifests
./scripts/deploy/update-manifest-seal-urls.sh
Updates all manifest templates with CDN URLs.
Step 6: Test
- Issue test credentials
- Verify seals display correctly
- Test all credential types
File Structure
assets/credential-images/
├── svg/ # Source SVG files
│ ├── digital-bank-seal.svg
│ ├── iccc-seal.svg
│ ├── iccc-provost-marshals-seal.svg
│ └── diplomatic-security-seal.svg
├── png/ # Generated PNG files
│ ├── digital-bank-seal.png
│ ├── digital-bank-seal-200x200.png
│ ├── digital-bank-seal-400x400.png
│ ├── digital-bank-seal-800x800.png
│ ├── ... (other seals)
│ ├── MANIFEST.txt
│ ├── VALIDATION_REPORT.txt
│ ├── upload-to-cdn.sh
│ └── UPLOAD_INSTRUCTIONS.md
├── DEPLOYMENT_CHECKLIST.md
└── DEPLOYMENT_SUMMARY.md
Dependencies
Required
- Bash 4.0+
- SVG files in
assets/credential-images/svg/
Optional (for conversion)
-
ImageMagick (recommended):
sudo apt-get install imagemagick # Linux brew install imagemagick # macOS -
Inkscape:
sudo apt-get install inkscape # Linux brew install inkscape # macOS -
Node.js with sharp:
pnpm add sharp
CDN Configuration
AWS S3 Example
# In upload-to-cdn.sh
aws s3 cp digital-bank-seal.png s3://your-bucket/images/digital-bank-seal.png --acl public-read
Azure Blob Storage Example
# In upload-to-cdn.sh
az storage blob upload --file digital-bank-seal.png --container-name images --name digital-bank-seal.png --account-name your-account
Cloudflare R2 Example
# In upload-to-cdn.sh
rclone copy digital-bank-seal.png r2:images/digital-bank-seal.png
Environment Variables
Set CDN base URL:
export CDN_BASE_URL=https://cdn.theorder.org/images
Or inline:
CDN_BASE_URL=https://your-cdn.com/images ./scripts/deploy/update-manifest-seal-urls.sh
Troubleshooting
Conversion Fails
- Install ImageMagick, Inkscape, or sharp
- Check SVG files are valid
- Verify file permissions
Validation Warnings
- Review warnings in validation report
- Check SVG structure
- Verify PNG files are valid
CDN Upload Issues
- Verify CDN credentials
- Check file permissions
- Ensure HTTPS is configured
Best Practices
- Always validate after conversion
- Review PNG quality before deployment
- Test in wallets before production
- Use HTTPS for all CDN URLs
- Optimize file sizes (<100KB recommended)
- Version control SVG source files
- Document changes in deployment summary
Automation Summary
| Task | Script | Status |
|---|---|---|
| SVG to PNG conversion | prepare-all-credential-seals.sh |
✅ Automated |
| File validation | validate-seal-files.sh |
✅ Automated |
| Manifest URL updates | update-manifest-seal-urls.sh |
✅ Automated |
| Complete deployment | complete-seal-deployment.sh |
✅ Automated |
| CDN upload | upload-to-cdn.sh |
⚠️ Template (customize) |
Next Steps After Automation
- ✅ Review generated PNG files
- ✅ Customize CDN upload script
- ✅ Upload to CDN
- ✅ Update manifest URLs
- ✅ Test credential issuance
- ✅ Deploy to production
Last Updated: [Current Date]
Automation Status: ✅ Complete