Auto-detect blog post releases at build time @osterman (#1902)
what
- Modified the
blog-release-dataDocusaurus plugin to compute release versions dynamically at build time using git - Blog posts without explicit
releasefrontmatter now automatically resolve to their release version - Respects manual frontmatter overrides (highest precedence)
why
The changelog was displaying recently released features as "Unreleased" because the plugin only read from blog post frontmatter. By detecting releases during the build process, we eliminate timing issues and ensure the website always shows accurate release information.
references
- Fixes changelog showing released changes (v1.201.0, v1.202.0) as "Unreleased"
Summary by CodeRabbit
-
New Features
- Blog posts gain automatic release detection (frontmatter override → VCS-derived stable tag → "unreleased" fallback).
- Release associations are populated in a global release map and exposed to UI components for consistent version-aware grouping and filtering.
- Changelog/timeline grouping now uses the global release map for more accurate release-based organization.
-
Chores
- No public plugin API changes.
✏️ Tip: You can customize this high-level summary in your review settings.
docs: Improve vendoring docs intro and messaging @osterman (#1888)
what
- Problem-first intro: "When your infrastructure depends on external modules..." instead of feature-focused messaging
- Concrete benefits: git diff visibility, audit trails, emergency patching (instead of abstract "standardizes" language)
- New "Why Vendor?" section explaining explicit vs implicit vendoring philosophy
- Use cases rewritten with concrete scenarios (compliance reviews, security patches, deployment reliability) instead of enterprise jargon
- Link to design-patterns page for full philosophy and details
why
User feedback indicated the vendoring docs don't effectively "sell" the value before diving into technical details. Readers looking for information about vendoring use cases couldn't find compelling reasons to adopt the pattern without watching videos or reading external resources. The design-patterns page does this better, so we aligned the main docs with that approach.
references
Addressing user feedback: "I have been reading about Atmos vendoring and wanted to check if there are any video demos that go over the use cases etc"
Summary by CodeRabbit
- Documentation
- Reorganized vendoring documentation with enhanced rationale and concrete benefits
- Added practical guidance for version management patterns and best practices
- Improved navigation through restructured content and cross-references to related resources
✏️ Tip: You can customize this high-level summary in your review settings.
🚀 Enhancements
Fix ATMOS_IDENTITY=false not working (issue #1898) @osterman (#1900)
what
- Fixed ATMOS_IDENTITY=false and --identity=false not being recognized as a way to disable authentication
- Added normalizeIdentityValue() helper to convert "false", "0", "no", "off" to internal disabled sentinel
- Added IsDisabled() method to IdentitySelector for checking if authentication is disabled
- Added comprehensive tests for identity flag normalization
why
When ATMOS_IDENTITY=false is set via environment variable or --identity=false is passed as a flag, the value "false" was being treated as a literal identity name instead of being normalized to the internal __DISABLED__ sentinel value. This caused auth validation to fail with "Identity specified was not found in the auth config." Users now have a clear way to disable authentication.
references
Closes #1898
Summary by CodeRabbit
-
New Features
- Enhanced identity flag handling to recognize various representations of disabled state (false, 0, no, off in any case variation).
- Added capability to check if authentication has been explicitly disabled.
-
Tests
- Added comprehensive test coverage for identity flag normalization and disabled state detection across multiple scenarios.
✏️ Tip: You can customize this high-level summary in your review settings.
fix: Restore terraform CLI flags after registry migration @goruha (#1896)
what
- Restored several terraform CLI flags that were broken after the command registry migration in v1.202.0
- Added missing flags to the terraform flag registry in
cmd/terraform/flags.go - Registered command-specific flags only on the commands that use them (matching pre-migration behavior)
- Fixed flag value parsing: flags are now properly read from Viper and applied to
ConfigAndStacksInfo - Added comprehensive test coverage for flag parsing and application
Fixed Flags
| Flag | Description |
|---|---|
--skip-init
| Skip terraform init before running command |
--auto-generate-backend-file
| Override auto_generate_backend_file setting from atmos.yaml |
--deploy-run-init
| Override deploy_run_init setting from atmos.yaml |
--init-run-reconfigure
| Override init_run_reconfigure setting from atmos.yaml |
--init-pass-vars
| Pass the generated varfile to terraform init (OpenTofu feature) |
--planfile
| Path to a terraform plan file to use |
--skip-planfile
| Skip writing the plan to a planfile |
Flag Availability by Command
The --skip-init flag is available on all terraform commands.
The following flags are registered only on the commands that use them:
| Command | Available Flags |
|---|---|
init
| --auto-generate-backend-file, --init-run-reconfigure, --init-pass-vars
|
workspace
| --auto-generate-backend-file, --init-run-reconfigure
|
plan
| --auto-generate-backend-file, --init-run-reconfigure, --skip-planfile
|
apply
| --auto-generate-backend-file, --init-run-reconfigure, --planfile
|
deploy
| --auto-generate-backend-file, --init-run-reconfigure, --deploy-run-init, --planfile
|
why
During the terraform command registry migration in v1.202.0, these flags had two issues:
- Flag registration: Flags were registered in the old parsing code but not in the new flag registry, causing "unknown flag" errors
- Flag value propagation: Even when flags were recognized, their values weren't being properly applied to the execution context, causing them to be silently ignored
This broke CI/CD pipelines that relied on these flags for controlling Atmos behavior.
Technical Changes
cmd/terraform/flags.go: AddedBackendExecutionFlags()for command-specific flagscmd/terraform/options.go: Added fields toTerraformRunOptionsand parsing inParseTerraformRunOptions()cmd/terraform/utils.go: UpdatedapplyOptionsToInfo()to transfer flag values toConfigAndStacksInfocmd/terraform/options_test.go: Added comprehensive tests for flag parsing and application
references
- Fixes regression introduced in version 1.202.0 (PR #1813)
Summary by CodeRabbit
-
New Features
- Restored/added Terraform CLI flags: auto-generate-backend-file, init-run-reconfigure, planfile, skip-planfile, skip-init, init-pass-vars, deploy-run-init across init/plan/apply/deploy/workspace.
-
Documentation
- Published blog post documenting restored Terraform CLI flags and usage.
-
Tests
- Added extensive unit/integration and CLI tests (including skip-init behavior and flag recognition across commands).
-
Chores
- Updated help output snapshots, test fixtures, and bumped dependency versions.
✏️ Tip: You can customize this high-level summary in your review settings.
feat: Display ErrorBuilder enrichments in early startup errors @osterman (#1892)
what
- Added structured plain text error formatting to display ErrorBuilder enrichments (hints, explanations, context) even when the markdown renderer is not initialized
- Fixes profile not found errors during config loading to show which profile is missing and how to configure it
why
- Early startup errors (before config is loaded) were falling back to bare plain text output that only showed the sentinel error message
- Rich error information from ErrorBuilder (hints, explanations, context) was being lost because the markdown renderer wasn't initialized yet
- This made errors like "Error: profile not found" unhelpful as they didn't tell users which profile was missing or how to fix it
references
- Improves user experience for all early startup errors that use the ErrorBuilder pattern
- Particularly beneficial for profile configuration errors showing profile name, search paths, and actionable hints
Summary by CodeRabbit
- Bug Fixes
- Improved error output when rich rendering is unavailable: displays structured sections for explanations, hints, and contextual key/value details while preserving legacy plain output and a helpful default title.
- Tests
- Added tests validating enriched error formatting, plain-error fallback, and default title behavior.
✏️ Tip: You can customize this high-level summary in your review settings.