# Introduction

`sfp server` is the server-side control plane for sfp-based DevOps automation. It provides a REST API used by the `sfp` CLI and other clients to run operations that would otherwise be bound to a single CI/CD job.

If you’re familiar with Salesforce DevHub, a useful mental model is “DevHub++”: the same control-plane pattern, extended from org/auth primitives into DevOps execution (queueing work, running it in isolated workers, tracking state, and exposing results through a consistent API). This term is just a shorthand for the concept; throughout the docs we simply refer to the system as `sfp server`. A single deployment can host multiple isolated tenants. Each tenant has its own configuration and operational state, and workload execution is handled by worker services.

## Architecture (High Level)

The runtime is composed of an API service (the control plane), worker pools (the execution plane), and a small set of supporting services. The API accepts requests, validates identity/authorization, persists and streams state, and schedules work. Workers pick up tasks based on queue priority (critical/normal/batch), execute them in an ephemeral environment, and report progress and results back to the state store.

## Capabilities

From a technical perspective, the system provides authentication flows (interactive and application tokens), task submission and lifecycle management (immediate/scheduled/recurring), document and key/value storage primitives used by higher-level features, and operation-scoped logging.

### Server Management

sfp server provides comprehensive CLI commands for server lifecycle management:

#### Core Commands

* [`sfp server init`](https://github.com/flxbl-io/docs/blob/main/sfp/cli-reference/v50/server/init.md) - Initialize a new server instance
* [`sfp server start`](https://github.com/flxbl-io/docs/blob/main/sfp/cli-reference/v50/server/start.md) - Start tenant services
* [`sfp server stop`](https://github.com/flxbl-io/docs/blob/main/sfp/cli-reference/v50/server/stop.md) - Stop tenant services
* [`sfp server status`](https://github.com/flxbl-io/docs/blob/main/sfp/cli-reference/v50/server/status.md) - Check service status
* [`sfp server update`](https://github.com/flxbl-io/docs/blob/main/sfp/cli-reference/v50/server/update.md) - Update to latest version

#### Monitoring & Operations

* [`sfp server health`](https://github.com/flxbl-io/docs/blob/main/sfp/cli-reference/v50/server/health.md) - Health checks and diagnostics
* [`sfp server logs`](https://github.com/flxbl-io/docs/blob/main/sfp/cli-reference/v50/server/logs.md) - View and monitor logs
* [`sfp server scale`](https://github.com/flxbl-io/docs/blob/main/sfp/cli-reference/v50/server/scale.md) - Scale worker services

For a complete list of server management commands, see the [CLI Reference](https://github.com/flxbl-io/docs/blob/main/sfp/cli-reference/v50/server/README.md).


---

# 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/sfp-server/readme.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.
