github cloudposse/atmos v1.197.0-rc.2

latest releases: v1.197.0-test.34, v1.197.0-test.33
pre-releaseone day ago
Show all blog posts on single page @osterman (#1731) ## Summary

Changed the blog configuration to display all posts on a single page instead of paginating with 10 posts per page.

What Changed

  • Updated postsPerPage from 10 to 'ALL' in website/docusaurus.config.js
  • Blog now shows all 22+ posts on a single page
  • Posts are automatically organized by year in the sidebar navigation

Why This Change

Users were unable to discover older blog posts because they were hidden behind pagination. With only the first 10 posts visible by default, readers had no easy way to browse the complete changelog history.

Benefits

  • Improved discoverability - All posts are now visible without clicking through pagination
  • Better user experience - Simpler navigation with all content in one place
  • Year-based organization - Docusaurus automatically groups posts by year
  • Better for SEO - All content indexed on a single page

Testing

  • ✅ Website builds successfully (npm run build)
  • ✅ All 22 blog posts appear on the blog index page
  • ✅ Posts are organized by year (2025)
  • ✅ No pagination controls present

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features
    • Blog now shows all posts on a single page (no pagination).
    • Blog sidebar lists all posts and displays an updated header ("All posts").
    • Sidebar can optionally group posts by year and month, with collapsible month groups and sensible initial expansion for the most recent months.

🚀 Enhancements

fix: Resolve CI regression where terraform fails without TTY for identity selection @osterman (#1735) ## Summary

Fixed critical regression in v1.196.0 where atmos terraform plan fails in CI environments with "interactive identity selection requires a TTY" error even when no authentication is configured.

The Problem

Running atmos terraform plan in CI (non-TTY) fails with:

Error: default identity error: interactive identity selection requires a TTY

This happens even when:

  • No authentication is configured
  • No --identity flag is provided
  • No identity-related environment variables are set

Root Causes

  1. Viper global state pollution: viper.BindPFlag() in cmd/auth_shell.go created two-way binding that persisted the __SELECT__ value across commands
  2. Incorrect fallback logic: Code would read from viper when the flag wasn't provided, getting polluted values from previous command executions

Solution

Key Changes

cmd/terraform_utils.go (lines 75-128):

  • Only process --identity flag when explicitly provided (flags.Changed())
  • Never read from viper global state (which can be polluted)
  • Check TTY availability BEFORE attempting interactive selection
  • Skip identity selection with debug log when no identities configured

cmd/auth_shell.go and cmd/auth_exec.go:

  • Remove duplicate identity flag definitions that shadowed parent PersistentFlags
  • Remove viper.BindPFlag() calls (the pollution source)
  • Identity flag properly inherited from parent authCmd

All 6 Scenarios Now Handled Correctly

No flag + default identity configured → Use default identity (TerraformPreHook)
--identity + TTY + identities available → Show interactive selector
--identity + no TTY → Fast fail with clear error message
--identity + no identities → Skip with debug log (no error)
--identity=value + exists → Use that identity
--identity=value + missing → Error from auth manager

Tests

Added comprehensive test suites covering all scenarios:

  • cmd/viper_bindings_test.go - Proves BindPFlag pollution mechanism
  • cmd/viper_identity_flag_test.go - Tests viper resolution scenarios
  • cmd/terraform_identity_flag_test.go - Tests terraform command behavior
  • cmd/cobra_flag_defaults_test.go - Tests Cobra NoOptDefVal behavior
  • Updated auth command tests to check flag inheritance

All tests use t.Setenv() per CLAUDE.md guidelines and check inherited flags via cmd.Flag().

Documentation

Created pkg/auth/docs/identity-flag-behavior.md documenting:

  • All 6 scenarios and expected behavior
  • Authentication flow and precedence order
  • Architecture decisions and rationale
  • Non-functional requirements
  • Future enhancements

Verification

  • ✅ Build passes
  • ✅ All tests pass
  • ✅ Pre-commit hooks pass (excluding pre-existing lint issues in unrelated files)
  • ✅ No viper pollution between command executions
  • ✅ Default identity authentication works without --identity flag
  • ✅ Interactive selection works in TTY
  • ✅ Fast failure with clear error in CI (no TTY)

Related Issues

Fixes v1.196.0 regression where CI pipelines fail unnecessarily.

Summary by CodeRabbit

Release Notes

  • New Features

    • Added interactive identity selection when --identity flag is used without a value
    • Implemented SSO token caching to prevent re-authentication prompts
    • Added unified, secure command-line argument parsing for trailing arguments
  • Bug Fixes

    • Fixed authentication chain truncation in container environments
    • Improved shell safety for custom commands with special characters and whitespace
    • Enhanced identity flag handling across CLI commands
  • Documentation

    • Added comprehensive guides on safe argument parsing and shell quoting
    • Documented authentication chain and credential caching fixes
    • Updated CLI help text for identity flag behavior
  • Chores

    • Updated dependencies to latest versions

Don't miss a new atmos release

NewReleases is sending notifications on new releases.