Offboard Employee
Identify and report all applications requiring manual access revocation when employees leave your organization.
Overview
This GitHub Action workflow helps automate the offboarding process by identifying all applications where a departing employee has access. It generates a comprehensive report and can optionally send notifications to the security team.
Features
Complete access audit: Identifies all WorkApps where the user has access
Detailed reporting: Generates comprehensive offboarding reports
Slack notifications: Optional notifications to security teams
Manual action tracking: Lists apps requiring manual revocation
Error handling: Robust error handling with detailed error messages
Prerequisites
Repository Secrets
Configure these secrets in your GitHub repository:
CAKEWALK_API_KEY: Your Cakewalk API keyCAKEWALK_API_SECRET: Your Cakewalk API secretSLACK_WEBHOOK_URL: (Optional) Slack webhook URL for notifications
API Limitations
Important: The current Cakewalk API does not have a DELETE endpoint for removing individual user access. This workflow will:
✅ Identify all apps the user has access to
✅ Generate a detailed report
⚠️ Require manual revocation in the Cakewalk UI
Setup Instructions
1. Create the Workflow File
Create .github/workflows/offboard-employee.yml in your repository:
2. Test the Workflow
Go to your repository's Actions tab
Select Offboard Employee - Revoke All Cakewalk Access
Click Run workflow
Fill in the required inputs:
Employee email
Offboarding reason (optional)
Click Run workflow
Customization
Adding Slack Notifications
To enable Slack notifications, uncomment and configure the notification step:
Adding Email Notifications
To add email notifications, you can use a service like SendGrid or AWS SES:
Adding Approval Step
For sensitive offboarding, add an approval step:
Monitoring & Troubleshooting
Workflow Logs
Check the Actions tab for detailed execution logs
Look for error messages in the step outputs
Review the summary report for access details
Common Issues
"User not found" Error:
Verify the user exists in Cakewalk
Check email spelling and case sensitivity
Ensure the user hasn't already been deleted
"401 Unauthorized" Error:
Verify API key and secret are correct
Check that credentials haven't expired
Ensure proper header formatting
"Empty response" Error:
Verify the API endpoint URL
Check network connectivity
Review API rate limits
Security Considerations
API Credentials: Store as repository secrets, never in code
Access Review: Regularly review who has access to what
Audit Logging: All access checks are logged for audit purposes
Manual Verification: Always verify access revocation in the UI
Future Enhancements
Requesting API Improvements
Consider requesting these API enhancements from Cakewalk:
DELETE Endpoint:
DELETE /WorkApps/{workAppId}/Accesses/{userId}Bulk Revocation:
DELETE /WorkApps/Accesseswith user filterUser Deactivation:
PATCH /Users/{userId}to deactivate user
Workarounds
Until API improvements are available, consider these workarounds:
User Deactivation: If available, deactivate the user account
Group Removal: Remove user from all groups
Permission Downgrade: Set all permissions to read-only
Manual Process: Use the UI for bulk revocation
Next Steps
Set up monitoring: Configure alerts for failed workflows
Add notifications: Integrate with Slack, email, or other systems
Automate further: Consider triggering from HR systems
Request API improvements: Ask Cakewalk for DELETE endpoint support
Last updated
Was this helpful?