# atmos list settings

Use this command to list component settings across all stacks in a comparison table. View how settings vary between environments to quickly spot configuration differences and validate consistency.

## Usage

```shell
atmos list settings [flags]
```

## Description

The `atmos list settings` command helps you inspect component settings across different stacks. It provides a tabular view where:

- Each column represents a stack (e.g., dev-ue1, staging-ue1, prod-ue1)
- Each row represents a key in the component's settings
- Cells contain the settings values for each key in each stack (only scalars at this time)

The command is particularly useful for:

- Comparing component settings across different environments
- Verifying settings are configured correctly in each stack
- Understanding component configuration patterns across your infrastructure

## Flags

- **`--query string`**
  Dot-notation path query to filter settings (e.g., 
  `.settings.templates`
  ). Uses a simplified path syntax, not full JMESPath.
- **`--max-columns int`**
  Maximum number of columns to display (default: 
  `50`
  )
- **`--format string`**
  Output format: 
  `table`
  , 
  `json`
  , 
  `yaml`
  , 
  `csv`
  , 
  `tsv`
   (default: 
  `table`
  )
- **`--delimiter string`**
  Delimiter for csv/tsv output (default: 
  `,`
   for csv, 
  `\t`
   for tsv)
- **`--stack string`**
  Filter by stack by wildcard pattern (e.g., 
  `*-dev-*`
  , 
  `prod-*`
  , 
  `*-{dev,staging}-*`
  )
- **`--identity` / `-i` (optional)**
  Authenticate with a specific identity before listing settings.
  This is required when stack configurations use YAML template functions
  (e.g., 
  `!terraform.state`
  , 
  `!terraform.output`
  ) that require authentication.
  `atmos list settings --identity my-aws-identity`
  Can also be set via 
  `ATMOS_IDENTITY`
   environment variable.
- **`--process-templates`**
  Enable/disable Go template processing in Atmos stack manifests (default 
  `true`
  ). Go template functions include 
  `atmos.Component(...)`
  .
  Environment variable: 
  `ATMOS_PROCESS_TEMPLATES`
- **`--process-functions`**
  Enable/disable YAML functions processing in Atmos stack manifests (default 
  `true`
  ). YAML functions include 
  `!terraform.state`
  , 
  `!terraform.output`
  , 
  `!store`
  , 
  `!aws.*`
  , etc. This is distinct from Go template functions like 
  `atmos.Component(...)`
  , which are controlled by 
  `--process-templates`
  .
  Environment variable: 
  `ATMOS_PROCESS_FUNCTIONS`

## Examples

List all settings:

```shell
atmos list settings
```

List settings for specific stacks:

```shell
# List settings for dev stacks
atmos list settings --stack '*-dev-*'

# List settings for production stacks
atmos list settings --stack 'prod-*'
```

List specific settings using path queries:

```shell
# Query template settings
atmos list settings --query '.settings.templates'

# Query validation settings
atmos list settings --query '.settings.validation'

# Query specific template configurations
atmos list settings --query '.settings.templates.gomplate'
```

Output in different formats:

```shell
# JSON format for machine processing
atmos list settings --format json

# YAML format for configuration files
atmos list settings --format yaml

# CSV format for spreadsheet compatibility
atmos list settings --format csv

# TSV format with tab delimiters
atmos list settings --format tsv
```

### Custom Column using Stack Name

You can use available variables like `.stack_name` in your column definitions:

```yaml
# In atmos.yaml, under the appropriate scope (values, vars, settings, or metadata)
list:
  columns:
    - name: "Stack"
      value: "{{ .stack_name }}"
    - name: "Setting"
      value: "{{ .key }}"
    - name: "Value"
      value: "{{ .value }}"
```

## Example Output

```shell
> atmos list settings
┌──────────────┬──────────────┬──────────────┬──────────────┐
│              │   dev-ue1    │  staging-ue1 │   prod-ue1   │
├──────────────┼──────────────┼──────────────┼──────────────┤
│ templates    │ {...}        │ {...}        │ {...}        │
│ validation   │ {...}        │ {...}        │ {...}        │
└──────────────┴──────────────┴──────────────┴──────────────┘
```

:::tip

- For wide tables, try using more specific queries or reduce the number of stacks
- Stack patterns support glob matching (e.g., `*-dev-*`, `prod-*`, `*-{dev,staging}-*`)
- Settings are typically found under component configurations
  :::
