# 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](https://1175929715-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlMXJauKOgXVlDwo5NJ6c%2Fuploads%2Fgit-blob-080f8dcd849db9e0f78cc19380ed50e908ffe722%2Fissueops-access-catalog.png?alt=media)

| 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](https://1175929715-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlMXJauKOgXVlDwo5NJ6c%2Fuploads%2Fgit-blob-f3766e12f81b1dbf2b5f789bf93e7143179f31f0%2Fissueops-environment-catalog.png?alt=media)

| 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](https://1175929715-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlMXJauKOgXVlDwo5NJ6c%2Fuploads%2Fgit-blob-bf9674ce02c723552754941db89af47f5ece3f26%2Fissueops-package-catalog.png?alt=media)

| 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](https://1175929715-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FlMXJauKOgXVlDwo5NJ6c%2Fuploads%2Fgit-blob-2a14c4e6f6e8fc87914686b27e9a00a16a09595d%2Fissueops-release-catalog.png?alt=media)

| 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](https://docs.flxbl.io/flxbl/sfops/issueops/building-custom-issueops) - Create your own operations
* [Configure DevCentral Forms](https://docs.flxbl.io/flxbl/sfops/devcentral/extending-using-custom-forms-and-issue-ops-actions) - Design user interfaces
* [Setup Workflows](https://docs.flxbl.io/flxbl/sfops/project-workflows/sfops-execute-issue-ops) - Configure automation
