---
layout: docs
page_title: Terraform patterns for scopes
description: >-
  Use Terraform patterns to create and manage Boundary scopes. Learn how to configure global, org-level, and project-level scopes using the Boundary provider.
---

⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️
> [!IMPORTANT]  
> **Documentation Update:** Product documentation previously located in `/website` has moved to the [`hashicorp/web-unified-docs`](https://github.com/hashicorp/web-unified-docs) repository, where all product documentation is now centralized. Please make contributions directly to `web-unified-docs`, since changes to `/website` in this repository will not appear on developer.hashicorp.com.
⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️⚠️

# Terraform patterns for scopes

You can use the following patterns to create org-level and project-level scopes.

## Requirements

This document assumes the reader has:

- An understanding of [Terraform](/terraform/docs) fundamentals.
- An existing Boundary installation. Refer to [Deploy Boundary in a self-managed environment](/boundary/docs/deploy/self-managed) to learn about deploying Boundary.
- Configured the [Terraform Boundary provider](/boundary/docs/deploy/terraform-patterns/#terraform-provider-configuration).

## Scopes configuration

The `scope_id` parameter determines what kind of scope to create according to these rules:

- If `scope_id` is the global scope, an org-level scope is created.
- If `scope_id` is an org-level scope, a project-level scope is created.
- If `scope_id` is a project-level scope, a nested project-level scope is created.

```hcl
resource "boundary_scope" "project" {
  name                     = "Basic Boundary Demo"
  description              = "First Ever Boundary Demo"

  # This parameter is the parent scope.  It can be either the global scope, an
  # org-level scope, or a project-level scope.
  scope_id                 = var.se_org_scope

  # Using the auto_create_x_role flags can help you get set up faster
  # becasue you won't have to explicitly define these roles.
  auto_create_admin_role   = true
  auto_create_default_role = true
}
```

## More information

For more information about the Boundary resources mentioned in this topic, refer to the domain model documentation:

- [Scopes](/boundary/docs/domain-model/scopes)
- [Org-level scopes](/boundary/docs/domain-model/scopes#organizations)
- [Project-level scopes](/boundary/docs/domain-model/scopes#projects)

For more information about managing the following resources using Terraform, refer to the Boundary provider documentation:

- [Scopes](https://registry.terraform.io/providers/hashicorp/boundary/latest/docs/resources/scope/)

## Next steps

You use scopes to partition resources and assign them to users.
Once you have created scopes, you may want to create [users and auth methods](/boundary/docs/deploy/terraform-patterns/terraform-users-and-auth-methods).