sfops
sfpSlackGithub
  • Overview
  • Features
  • Environments
    • Creating an Environment
    • Authenticating to Environments
    • Review Environments
      • Configuring Review Sandboxes
      • Creation and Allocation of Review Sandboxes
  • Project Workflows
    • sfops - Execute Issue Ops
    • sfops - On Pull Request Comments
    • sfops - Close Issues
    • sfops - Execute Every 30 mins
    • sfops - Daily Job Executor
    • sfops - Review Sandbox - Creator
    • sfops - On Push to Branch
    • sfops - Execute Releases to any env
    • sfops - Execute Releases
  • IssueOps
    • Access
      • Request elevated previlege in production
    • Release
      • Release a Domain
      • Hotfix Workflow
  • Changelog
    • November24
    • January25
  • DevCentral
    • Customising Menu
    • Extending using Custom Forms and Issue Ops Actions
  • self managed instances
    • Setup for self managed instances
      • 1. Create repositories
      • 2. Create a GitHub App
      • 3. Setting up sfops repository
      • 4. Trigger the workflows
      • 5. Setting up project repository
      • 6. Fetching upstream changes
        • 6.1 Manual Process for Updating sfops from Upstream
    • Update Instructions
      • Updating to v29.0.0
      • Updating to v30.3.1 and above
    • Workflow details
      • Sync Upstream Repository and Create Pull Request
  • Legal
    • Terms of Service for sfops
Powered by GitBook
On this page
  • Process Descriptions
  • 1. Sandbox Creation (Review Sandbox - Creator)
  • 2. Sandbox Allocation and Expiry Check (Sandbox To Pool - Allocator)
  1. Environments
  2. Review Environments

Creation and Allocation of Review Sandboxes

PreviousConfiguring Review SandboxesNextProject Workflows

Last updated 1 year ago

The following high level view on how the review sandboxes are created and allocated to the sandbox pools

This section outlines the processes involved in the creation, allocation, and management of the lifecycle of Salesforce sandboxes, including conditions for expiry and deletion.

Process Descriptions

1. Sandbox Creation (Review Sandbox - Creator)

The creation process can be initiated either by a scheduled cron job or by a manual trigger.

A predefined number of sandboxes are requested to be created, based on the count specified in the configuration settings. Post creation request, GitHub action variables are updated with sandbox details, marking them as "In Progress".

2. Sandbox Allocation and Expiry Check (Sandbox To Pool - Allocator)

This step can be started by a cron job or manually.

The system checks the status of sandboxes in DevHub marked "In Progress". If a sandbox is activated and ready, its status is updated to "Available" in GitHub.

Expiry Eligibility Criteria

The system evaluates "Available" sandboxes in GitHub to determine their eligibility for expiry based on the following rules:

  1. Unassigned Sandbox: If a sandbox is not assigned an issue within 24 hours of its creation, it is eligible for expiry.

  2. Assigned Sandbox:

    • If the sandbox has an issue assigned but is not extended, it becomes eligible for expiry 24 hours after the issue assignment.

    • If the sandbox is extended post-issue assignment, the expiry eligibility extends to 48 hours from the issue assignment time.

Expiry and Deletion Process

  • Sandboxes meeting the above criteria are marked as "Expired".

  • The system attempts to delete all "Expired" sandboxes.

  • If deletion fails, the sandbox remains marked as "Expired" and will be re-attempted for deletion in the next run.

  • Upon deletion attempt, whether successful or pending, GitHub action variables associated with the expired sandboxes are removed.

Asynchronous creation and allocation