## Documentation Index

Fetch the complete documentation index at: [/llms.txt](https://cosmo-docs.wundergraph.com/llms.txt)

Use this file to discover all available pages before exploring further.

This is useful for managing multi-stage deployment pipelines with separate deployment environments, such as `development`, `staging`, and `production`. Every federated graph has a `default` namespace to which all graph instances are published unless otherwise specified. To specify a namespace other than the `default`, supply the `--namespace` or `-n` parameter when executing WunderGraph Cosmo CLI (`wgc`) commands.

**Create Graph in**`default` **Namespace:**

```
wgc federated-graph create my-wundergraph
```

**Create Graph in**`production` **Namespace:**

```
wgc federated-graph create my-wundergraph --namespace production
```

Resources created in one namespace can be moved to another.

**Move Graph to**`production` **Namespace:**

```
wgc federated-graph move my-wundergraph --namespace default --to production
```

Note that a namespace must already exist before resources can be placed therein. Attempting to place resources into a non-existent namespace will give rise to an error indicating that the provided namespace could not be found.

**Namespaces reduce the complexity of using Labels to isolate resources in different environments.** Labels and Namespaces serve complementary but distinct roles in organizing and managing resources within WunderGraph Cosmo.

- Labels allow for flexible, declarative composition of federated graphs by letting you specify which subgraphs to include when composing;
- Namespaces are used to group and/or isolate federated graphs and subgraphs, often in different environments, such as `development`, `staging`, and `production.`

Leverage both Namespaces and Labels to allow for flexible and dynamic composition of your federated graphs while protecting against accidental composition of graphs from different environments.

## Creating Namespaces

Create new `namespaces` for your organization using the WunderGraph Cosmo CLI `namespace create` command. To create `namespaces` in your organization for `production`, `staging`, and `development` environments, execute the commands below.

**Create Production Namespace**

```
wgc namespace create production
```

**Create Staging Namespace**

```
wgc namespace create staging
```

**Create Development Namespace**

```
wgc namespace create development
```

Namespace names must begin and end with an alphanumeric character; with the exception of dashes (-) and underscores (_), no other special characters are allowed.

## Listing Namespaces

List all `namespaces` for your organization using the WunderGraph Cosmo CLI `namespace list` command. By default, the list of namespaces in your organization will be displayed in a table. To format the output as JSON, supply the `--raw` or `-r` flag when executing the WunderGraph Cosmo CLI (`wgc`) `namespace list` command. To persist the output (as JSON) to the file system, supply the `--out` or `-o` parameter when executing the WunderGraph Cosmo CLI (`wgc`) `namespace list` command.

**List Organization Namespaces**

```
wgc namespace list
```

**List Organization Namespaces (JSON -> Console)**

```
wgc namespace list --raw
```

**List Organization Namespaces (JSON -> File)**

```
wgc namespace list --out "./namespaces.json"
```

## Renaming Namespaces

Already existing namespaces can be renamed. To rename an existing namespace for your organization to a new name, use the WunderGraph Cosmo CLI (`wgc`) `namespace rename` command.

**Rename Existing Namespace**

```
wgc namespace rename my-existing-namespace --to my-new-namespace
```

## Deleting Namespaces

Delete a `namespace` for your organization using the WunderGraph Cosmo CLI `namespace delete` command. Note that deleting a namespace will delete all resources within it; use caution—only administrators and the creator of a namespace can perform this action. Upon executing the command, you will be prompted for confirmation that you wish to proceed. To force the execution without confirmation, supply the `--force` or `-f` flag when executing WunderGraph Cosmo CLI (`wgc`) `namespace delete` command.

**Delete Namespace (Requires Confirmation)**

```
wgc namespace delete my-existing-namespace
```

**Delete Namespace (No Confirmation)**

```
wgc namespace delete my-existing-namespace --force
```
