---
sidebar_label: Sample scopes
toc_max_heading_level: 3
doc_id: 8bb4a4a0-536e-4dd4-8c90-29ecdc593bc3
description: >-
  Sample scope types nullplatform maintains as working examples, such as
  containers, serverless functions, and static sites, and how to adopt one in
  your organization.
keywords:
  - sample scopes
  - base scopes
  - scope types
  - agent-backed scopes
  - scope repositories
  - adopt a scope
title: Sample scopes
canonical: 'https://docs.nullplatform.com/docs/agent-backed-scopes/sample-scopes'
---
# Sample scopes

Sample scopes are working examples of scope types that nullplatform maintains in public repositories. Each one ships
its scope specification, actions, workflows, and the code your agent runs to deploy to it, so you can adopt it as is or
use it as the starting point for your own. They are examples, not the limit of what you can run: any scope type you
craft works the same way.

## Samples

Each row is one scope type, as defined in the latest release of its repository:

- **Scope**: the name developers see when they create a scope.
- **Description**: what the scope deploys, as the scope type describes itself.
- **Repository**: links to the folder with the scope's code. Some repositories hold several scope types.

| Scope | Description | Repository |
| --- | --- | --- |
| Containers | Docker containers on pods | [scopes/k8s](https://github.com/nullplatform/scopes/tree/v1.18.0/k8s) |
| Scheduled Task | Allows you to deploy periodic jobs in Kubernetes | [scopes/scheduled_task](https://github.com/nullplatform/scopes/tree/v1.18.0/scheduled_task) |
| Static files | Allows you to deploy static files applications | [scopes-static-files/static-files](https://github.com/nullplatform/scopes-static-files/tree/v4.1.1/static-files) |
| AWS Lambda | Serverless functions on AWS Lambda | [scopes-lambda/lambda](https://github.com/nullplatform/scopes-lambda/tree/v0.10.0/lambda) |
| Containers On-Premise | Docker containers on pods, on self-managed/on-premise clusters | [scopes/onprem](https://github.com/nullplatform/scopes/tree/v1.18.0/onprem) |
| Volt MX Foundry app | Publishes a Volt MX Foundry app to a Foundry environment | [scopes-voltmx-foundry-app/voltmx-foundry-app](https://github.com/nullplatform/scopes-voltmx-foundry-app/tree/v0.1.4/voltmx-foundry-app) |
| Mobile store | Publishes mobile app binaries (Android, iOS) to a distribution channel: tester groups, app stores or an enterprise store | [scopes-mobile-store/mobile-store](https://github.com/nullplatform/scopes-mobile-store/tree/v0.5.1/mobile-store) |

Each repository has its own releases and changelog. A scope that's no longer maintained stays listed, with
**Deprecated** at the start of its name.

## How adopting a sample scope works

The repository's README has the exact steps and values for each scope. The flow is the same for all of them:

1. **Grant the agent its cloud permissions.** If the scope has a requirements module in
   `<path>/specs/requirements/<cloud>`, apply it in your cloud account. It sets up the permissions your agent needs to
   deploy to the scope.
2. **Register the scope type in nullplatform.** Use the `scope_definition` and `scope_definition_agent_association`
   modules from [tofu-modules](https://github.com/nullplatform/tofu-modules). The first one registers the scope type,
   its actions and its specification from the repository, and the second one routes the scope's actions to your
   agents. Some repositories include a ready-to-apply module for this in `<path>/specs/install/<cloud>`.
3. **Complete the scope's own prerequisites.** Some scopes need more before their first deployment, such as a scope
   configuration, DNS zones, or a cluster the agent can reach.

Once it's registered, developers pick the scope type when they create a scope for their applications, like any other
scope type.

:::note
You need a running agent with a notification channel for your scopes before you adopt one. If you don't have it yet,
set it up first.
:::

## Next steps

- [Craft a scope from scratch](/docs/agent-backed-scopes/overview): build your own scope type or adapt a sample
- [Scope types](/docs/agent-backed-scopes/scope-types): choose the right scope type for your workload
- [Overrides](/docs/agent-backed-scopes/overrides): change how a scope behaves without copying it
- [Sample services](/docs/services/sample-services): the same kind of catalog, for services
