May25
🆕 Functional Changes (v31.0.3 → v31.1.1)
DevCentral Dashboard Enhancement
SFP Server Integration: DevCentral dashboards now support SFP server-based front door URL functionality
Review environments, sandboxes, and scratch orgs pages updated to work with SFP server
Improved URL handling for better environment access
Major PR Validation Enhancement
GitHub Checks API Integration: PR validation results are now reported through GitHub's native Checks API instead of comments
No more cluttered PR comments with validation results
Cleaner PR interface with validation status shown in GitHub's checks panel
Better integration with GitHub's merge requirements and branch protection rules
Workflow Improvements
SFP Server Support: All workflows now pass SFP server URL and token through the pipeline
New Release Configuration: Added "thorough" as a release configuration option
Better Variable Management: Fixed incorrect variables being passed between workflows
Environment variables now properly propagate across all job stages
Removed Features
Deprecated Actions: Removed unused actions (checkActions, create-or-update-project-card)
fetchAllReleaseNames: Moved to sfp-pro for better maintainability
Branch Deploy: Completely removed from all workflows (see project workflow updates above)
Bug Fixes
Fixed filename changes for sfp-pro compatibility
Corrected variable passing in project workflows
Improved environment variable handling across jobs
🔄 Version Compatibility
SFOPS v31.1.x requires sfp-pro base images v31.0.0 or later
Using mismatched versions may cause unexpected behavior
Always test with your specific base image versions
🏗️ Major Architecture Change: No More Rebuilding sfp!
Starting with v31.1.0, SFOPS fundamentally changed how Docker images are built. If you fork sfops, you no longer need to rebuild the entire sfp. This allows one to execute completely isolated not using the flxbl's ghcr regsitry for flxbl managed instances
What Changed
Before v31.1.0:
Users had to rebuild the entire sfp toolchain when forking SFOPS
Complex dependency management across multiple tools
Maintenance burden of keeping sfp versions in sync
Risk of version conflicts and build failures
After v31.1.0:
SFOPS now uses pre-built sfp base images
sfops
extendssfp-pro
base image (just adds GitHub CLI)sfops-lite
extendssfp-pro-lite
base imageNo more rebuilding sfp - just use the official images
Clean separation: sfp team maintains core tools, SFOPS adds orchestration
New in v31.1.1:
Base image versions are now configurable via GitHub variables
No more hardcoded "latest" tags - you control the versions
🚨 Action Required for Forked Repositories
If you maintain a fork of SFOPS and build your own Docker images, you must update your GitHub configuration:
1. Configure GitHub Variables
In your GitHub fork, navigate to Settings → Secrets and variables → Actions → Variables
Add these repository variables:
BASE_REGISTRY
source.flxbl.io
Registry where sfp base images are hosted
BASE_REPO
sfops
Repository namespace
BASE_IMAGE_TAG
v31.1.0
Specific version (don't uselatest
)
2. Configure Registry Credentials
The sfp base images are hosted on source.flxbl.io. You need to configure credentials in GitHub:
In your GitHub fork, go to Settings → Secrets and variables → Actions → Secrets
Add these secrets:
BASE_REGISTRY_USERNAME
: Your source.flxbl.io usernameBASE_REGISTRY_TOKEN
: Your source.flxbl.io access token
To get your source.flxbl.io token:
Log into source.flxbl.io → Settings → Applications → Generate New Token
Grant package registry read permissions
Copy the token to use in GitHub
3. Update Project Workflows (Important!)
If your Salesforce projects use SFOPS workflows, you need to update them:
What Changed
The
sfops-push-to-branch.yml
workflow was removed (branch-deploy deprecated)Several reusable workflows were updated to remove branch-deploy dependencies
How to Update
Navigate to your Salesforce project repository (not your SFOPS fork)
Check
.github/workflows/
for these SFOPS workflows:sfops-push-to-branch.yml
- DELETE this fileOther
sfops-*.yml
files - UPDATE to latest versions
Copy the latest workflow files from
sfops-gh-actions/project-workflows/
Commit the updated workflows to your project
Note: This is separate from updating your SFOPS fork - this is about updating the workflows in your actual Salesforce projects that consume SFOPS.
4. Build Your Own Base Images (Optional)
If you need custom base images:
Fork the sfp-pro repository
Build and publish your custom sfp-pro images
Update your SFOPS fork to use your custom base images
💡 Benefits of the New Architecture
Faster CI/CD
Docker builds are 3-5x faster
Base layers are cached and reused
Less bandwidth usage
Better Version Control
Pin specific base image versions for stability
Test new versions before rolling out
Consistent builds across teams
Easier Maintenance
No more rebuilding sfp when you just need SFOPS changes
sfp updates are handled by the Flxbl team
Your fork only needs to track SFOPS-specific customizations
Cleaner separation between tooling (sfp) and orchestration (SFOPS)
📋 Quick Migration Checklist
For Your SFOPS Fork
Get latest code
Configure GitHub Variables (in your SFOPS fork)
Configure GitHub Secrets (in your SFOPS fork)
Test Docker Build
For Your Salesforce Projects
Update project workflows
Test updated workflows
🔍 Troubleshooting
Common Issues
Build fails with "manifest unknown" error
Check that your
BASE_REGISTRY
andBASE_REPO
values are correctVerify the base image exists at the specified location
Ensure your access token has read permissions
Authentication errors
Ensure your source.flxbl.io token has package read permissions
Token might be expired - generate a new one at source.flxbl.io
Username must match your source.flxbl.io login username
The token must be configured in your GitHub fork's secrets
Wrong base image version
Clear your Docker cache:
docker system prune -a
Explicitly set
BASE_IMAGE_TAG
instead of usinglatest
📚 Further Reading
Need help? Reach out to your dedicated support channel in Flxbl's Slack workspace.
Security concerns? Audit the sfp source code at source.flxbl.io to understand what's included in the base images.
Last updated