user-minusOffboard 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 key

  • CAKEWALK_API_SECRET: Your Cakewalk API secret

  • SLACK_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

  1. Go to your repository's Actions tab

  2. Select Offboard Employee - Revoke All Cakewalk Access

  3. Click Run workflow

  4. Fill in the required inputs:

    • Employee email

    • Offboarding reason (optional)

  5. 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:

  1. DELETE Endpoint: DELETE /WorkApps/{workAppId}/Accesses/{userId}

  2. Bulk Revocation: DELETE /WorkApps/Accesses with user filter

  3. User Deactivation: PATCH /Users/{userId} to deactivate user

Workarounds

Until API improvements are available, consider these workarounds:

  1. User Deactivation: If available, deactivate the user account

  2. Group Removal: Remove user from all groups

  3. Permission Downgrade: Set all permissions to read-only

  4. 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?