# Available IssueOps

sfops provides 14 pre-built IssueOps operations organized into categories. These can be used immediately or serve as reference implementations for custom IssueOps.

## Access Management

![Access IssueOps](/files/baUCwWwICTPD1Sy0v24C)

| Operation                   | Issue ID                      | Description                                                                             |
| --------------------------- | ----------------------------- | --------------------------------------------------------------------------------------- |
| Request Elevated Privileges | `request-elevated-previleges` | Grant temporary elevated access to production environments with automatic de-escalation |
| Freeze Users                | `request-freeze-users`        | Freeze users by profile in specified environments                                       |
| Unfreeze Users              | `request-unfreeze-users`      | Unfreeze previously frozen users based on profiles                                      |

## Environment Management

![Environment IssueOps](/files/PPrC1nPxIH9vOMicq5yd)

| Operation                  | Issue ID              | Description                                            |
| -------------------------- | --------------------- | ------------------------------------------------------ |
| Request Scratch Org        | `request-scratchorg`  | Get a scratch org from pool for specified duration     |
| Request Dev Sandbox        | `request-dev-sandbox` | Provision a developer sandbox from pool or create new  |
| Request GitHub Environment | `request-an-env`      | Create GitHub environment with variables and approvals |
| Delete Environment         | `request-delete-env`  | Remove GitHub environment                              |
| Request from SBX Pool      | `request-sbx-pool`    | Get sandbox from SFP Server pool                       |
| Unassign from SBX Pool     | `unassign-sbx-pool`   | Return sandbox to pool                                 |

## Package Management

![Package IssueOps](/files/8wpQ90EN6QFWmiu9Ke6F)

| Operation            | Issue ID                           | Description                                         |
| -------------------- | ---------------------------------- | --------------------------------------------------- |
| Install sfp Artifact | `request-an-artifact-installation` | Deploy built sfp artifacts to target orgs           |
| Install Package      | `request-package-installation`     | Install managed/unlocked packages using version IDs |

## Release Management

![Release IssueOps](/files/AQzXwv4LlPGJKipjOFFQ)

| Operation               | Issue ID                   | Description                                        |
| ----------------------- | -------------------------- | -------------------------------------------------- |
| Request Release Branch  | `request-a-release-branch` | Create patch release branch for hotfixes           |
| Release to Environments | `request-a-release`        | Deploy release to environments in release category |
| Update Release Name     | `update-release-name`      | Update release definition prefix after sprint      |

## Using Available IssueOps

These IssueOps are enabled by default in sfops. No configuration required.

### 1. Submit Request

Users can submit requests through:

* **DevCentral**: Navigate to Service Catalogue and use the forms
* **Direct Issue**: Create an issue with JSON payload in HTML comment:

```markdown
Title: Need a scratch org for development

<!--
{
  "id": "request-scratchorg",
  "tag": "dev",
  "daysToKeep": 7,
  "email": "developer@company.com"
}
-->
```

### 2. Monitor Processing

The IssueOps executor will:

* Post processing status as comments
* Execute the operation
* Provide results or error details
* Close issue when complete

## Configuration Requirements

### Core Secrets

```yaml
# Authentication
DEVHUB_SFDX_AUTH_URL     # For scratch org operations
PROD_SFDX_AUTH_URL       # For production operations

# GitHub App
SFOPSBOT_APP_ID          # GitHub App ID
SFOPSBOT_APP_PRIVATE_KEY # GitHub App private key

# Optional: SFP Server
SFP_SERVER_URL           # For sandbox pool operations
SFP_SERVER_TOKEN         # SFP Server API token
```

### Required Files

Some IssueOps require configuration files in DevCentral:

* `scratchOrgStatus.json` - Scratch org pool configuration
* `envInfos.json` - Environment information
* `branches.json` - Available branches
* `domains.json` - Domain configuration

## Customizing Forms

Create user-friendly forms in DevCentral `_forms` directory:

```yaml
name: Request Scratch Org
description: Get a scratch org for development
title: "[OPS] Scratch Org Request"
labels: ["ops", "scratch-org"]
body:
  - type: dropdown
    id: tag
    attributes:
      label: Pool Tag
      description: Select the type of scratch org
      options:
        - dev
        - test
        - integration
    validations:
      required: true

  - type: input
    id: email
    attributes:
      label: Email
      description: Your email address
      placeholder: developer@company.com
    validations:
      required: true

  - type: dropdown
    id: daysToKeep
    attributes:
      label: Duration
      description: How long to keep the org
      options:
        - 1
        - 3
        - 7
        - 14
        - 30
    validations:
      required: true
```

## Next Steps

* [Build Custom IssueOps](/flxbl/sfops/issueops/building-custom-issueops.md) - Create your own operations
* [Configure DevCentral Forms](/flxbl/sfops/devcentral/extending-using-custom-forms-and-issue-ops-actions.md) - Design user interfaces
* [Setup Workflows](/flxbl/sfops/project-workflows/sfops-execute-issue-ops.md) - Configure automation


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.flxbl.io/flxbl/sfops/issueops/available-issueops.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
