atmos validate component
Use this command to validate an Atmos component in a stack using JSON Schema and OPA policies.
Learn how to configure JSON Schema and OPA policy paths for validating components.
Usage
Execute the validate component command like this:
atmos validate component <component> -s <stack> [options]
This command validates an Atmos component in a stack using JSON Schema and OPA policies.
Path-Based Component Resolution
Atmos supports using filesystem paths instead of component names for convenience:
# Navigate to component directory
cd components/terraform/vpc
# Use . to reference current directory
atmos validate component . --stack dev
This automatically resolves the path to the component name configured in your stack.
Supported path formats:
.- Current directory./component- Relative path from current directory../other-component- Relative path to sibling directory/absolute/path/to/component- Absolute path
Requirements:
- Must be inside a component directory under the configured base path
- Must specify
--stackflag - Component must exist in the specified stack configuration
- The component path must resolve to a unique component name - If multiple components in the stack reference the same component path, you must use the unique component name instead of the path
Path-based resolution only works when the component path resolves to a single unique component in the stack.
For example, if both station/1 and station/2 reference components/terraform/weather:
cd components/terraform/weather
atmos validate component . --stack dev # ❌ Error: ambiguous - which component?
Instead, you must use the unique component names:
atmos validate component station/1 --stack dev # ✓ Explicit and unambiguous
atmos validate component station/2 --stack dev # ✓ Explicit and unambiguous
Run atmos validate component --help to see all the available options
Examples
Component Name Examples
atmos validate component infra/vpc -s tenant1-ue2-dev
atmos validate component infra/vpc -s tenant1-ue2-dev --schema-path vpc/validate-infra-vpc-component.json --schema-type jsonschema
atmos validate component infra/vpc -s tenant1-ue2-dev --schema-path vpc/validate-infra-vpc-component.rego --schema-type opa
atmos validate component infra/vpc -s tenant1-ue2-dev --schema-path vpc/validate-infra-vpc-component.rego --schema-type opa --module-paths catalog/constants
atmos validate component infra/vpc -s tenant1-ue2-dev --schema-path vpc/validate-infra-vpc-component.rego --schema-type opa --module-paths catalog
atmos validate component infra/vpc -s tenant1-ue2-dev --timeout 15
Path-Based Examples
# Navigate to component directory and use current directory
cd components/terraform/vpc
atmos validate component . --stack dev
# Use relative path
cd components/terraform
atmos validate component ./vpc --stack dev
# Use from project root with relative path
atmos validate component components/terraform/vpc --stack dev
# Combine with validation options
cd components/terraform/vpc
atmos validate component . --stack dev --schema-path vpc-schema.json --schema-type jsonschema
atmos validate component . --stack dev --schema-path vpc-policy.rego --schema-type opa
atmos validate component . --stack dev --timeout 15
Arguments
component(required)Atmos component name or filesystem path.
Supports both:- Component names:
vpc,infra/vpc,test/test-component - Filesystem paths:
.(current directory),./vpc,components/terraform/vpc
When using paths, Atmos automatically resolves the path to the component name based on your stack configuration.
- Component names:
Flags
--stack/-s(required)- Atmos stack.
--schema-path(optional)- Path to the schema file.
Can be an absolute path or a path relative toschemas.jsonschema.base_path
andschemas.opa.base_pathdefined inatmos.yaml. --schema-type(optional)- Schema type:
jsonschemaoropa. --module-paths(optional)- Comma-separated string of filesystem paths (folders or individual files) to the additional modules
for schema validation. Each path can be an absolute path or a path relative toschemas.opa.base_pathdefined inatmos.yaml. --timeout(optional)- Validation timeout in seconds. Can also be specified in
settings.validationcomponent config. If not provided, timeout of 20 seconds is used by default.