Releases: cloudposse/atmos
v1.180.0-test.1
FEATURE RELEASE
v1.180.0-test.0
FEATURE RELEASE
v1.180.0-rc.4
bug: fix odic exchange @mcalhoun (#1292)
## whatMove the Atmos Pro config to the Atmos settings
why
To follow the same canonical pattern we are using to read settings for other parts of the Atmos application.
Summary by CodeRabbit
Summary by CodeRabbit
- New Features
- Introduced structured configuration options for Atmos Pro integration, including support for specifying base URL, endpoint, API token, workspace ID, and GitHub OIDC settings.
- Refactor
- Updated API client initialization and related commands to use the new configuration structure, improving clarity and maintainability.
- Tests
- Refactored tests to align with the new configuration approach, removing reliance on environment variables and enhancing test reliability.
v1.180.0-rc.3
bug: fix oidc exchange @mcalhoun (#1291)
## whatupdate viper config to read odic env vars
why
the env vars aren't currently bound the configuration, so they're not being read
Summary by CodeRabbit
- Chores
- Updated environment variable handling for GitHub OIDC token retrieval to improve configuration consistency.
- Simplified and enhanced tests related to GitHub OIDC token fetching and error handling.
v1.180.0-rc.2
debugging atmos pro oidc exchange @mcalhoun (#1290)
## whatDebugging atmos pro oidc exchange
why
Something isn't working properly in GHA
Summary by CodeRabbit
-
Bug Fixes
- Improved error handling and consistency of error messages during authentication and API interactions.
-
Chores
- Enhanced debug logging to provide more detailed information during API client setup, environment configuration, and network requests.
- Updated method signatures and test cases for improved data handling in API requests.
v1.180.0-rc.1
bug: fix oidc exchange @mcalhoun (#1289)
## what- Replace all references to
app.cloudposse.com
withatmos-pro.com
- Update the ExchangeGitHubOIDCTokenResponse DTO to have the correct shape
- Move all DTOs into their own sub-folder
- Improve test coverage
why
To make the oidc exchange work properly
Summary by CodeRabbit
-
New Features
- Introduced new data structures to standardize interactions with Atmos Pro API, including support for stack locking, unlocking, affected stacks upload, and GitHub OIDC authentication workflows.
-
Bug Fixes
- Improved error handling and messaging for authentication and API communication scenarios.
-
Documentation
- Updated command help texts and documentation links to reference the new "atmos-pro.com" domain.
-
Style
- Cleaned up whitespace and formatting in configuration and help output.
-
Tests
- Added comprehensive tests for stack locking, unlocking, affected stacks upload, and authentication flows to ensure robust client behavior.
-
Chores
- Updated configuration files and integration endpoints to use "atmos-pro.com" instead of "app.cloudposse.com".
v1.180.0-rc.0
DEV-3258: OIDC Token Exchange @milldr (#1278)
## whatThis pull request introduces significant enhancements to the AtmosProAPIClient
to support GitHub OIDC token-based authentication, improve error handling, and add corresponding unit tests. The changes include the addition of new constants, error definitions, helper functions for OIDC token management, and updates to existing methods to handle the new authentication flow.
Authentication Enhancements:
- Added support for GitHub OIDC token-based authentication as a fallback when the API token is not provided. (
pkg/pro/api_client.go
,pkg/pro/requests.go
) [1] [2] [3] - Introduced helper functions
getGitHubOIDCToken
andexchangeOIDCTokenForAtmosToken
to retrieve and exchange OIDC tokens for Atmos Pro tokens. (pkg/pro/api_client.go
)
Error Handling Improvements:
- Centralized error definitions for better maintainability and consistency. (
pkg/pro/api_client.go
) - Updated error messages across multiple methods to use formatted error constants. (
pkg/pro/api_client.go
) [1] [2] [3] [4] [5] [6] [7]
Configuration Updates:
- Replaced
os.Getenv
withviper.GetString
for environment variable management, enabling better configuration handling. (pkg/pro/api_client.go
) - Added a new environment variable
ATMOS_PRO_WORKSPACE_ID
for OIDC authentication. (pkg/config/const.go
)
Unit Tests:
- Added comprehensive unit tests for OIDC authentication, including scenarios for successful authentication, fallback to API token, and failure cases. (
pkg/pro/api_client_test.go
)
Struct Additions:
- Defined new request and response structs for OIDC token exchange (
GitHubOIDCAuthRequest
,GitHubOIDCAuthResponse
,GitHubOIDCResponse
). (pkg/pro/requests.go
)
why
Currently all the Atmos Pro functionality reads the API token out of the environment. We should leave that in place, but should use that token second only if we can't exchange an OIDC token for an Atmos token.
references
Summary by CodeRabbit
-
New Features
- Added support for authentication using GitHub OIDC tokens as a fallback when an API token is not set.
- Updated default API base URL and endpoint to new Atmos Pro service addresses.
- Enhanced error reporting with more detailed and consistent error messages during authentication and API interactions.
-
Bug Fixes
- Improved handling of missing authentication credentials, providing clearer error messages when both OIDC and API tokens are unavailable.
-
Tests
- Introduced new tests to validate OIDC and API token authentication flows, including fallback scenarios and error handling.
v1.179.0
Update Atlantis integration and tests @aknysh (#1283)
what
- Update Atlantis integration
- Add tests
why
- Allow using
stacks.name_template
(defined inatmos.yaml
) to generate Atlantis repo configs from the Atmos stacks (note thatstacks.name_pattern
was already supported in the Atlantis integration) - Fix Atlantis tests on Windows (they were randomly failing)
Improve Workflow DX @milldr (#1229)
what
- Update all log messages for workflow_utils to use the charmbracelet log handling
- Add TUI message when workflow kicks off an atmos command to report the command being executed
why
- We should always see the command being executed before it runs and see the command that fails when it fails.
- Clear error messages on workflows to explain the true issue in a consistent format
screenshots
Add pager to `atmos describe affected` command @samtholiya (#1255)
what
- Add pager to
atmos describe affected
command
why
- Better UX
Add pager to `atmos describe stacks` command @samtholiya (#1265)
what
- Add pager to
atmos describe stacks
command
why
- Better UX
v1.179.0-rc.2
add pager to atmos describe stack command @samtholiya (#1265)
## what * we adding pager capability to `atmos describe stack` command. why
- This will give users a better view of the content.
references
Summary by CodeRabbit
-
Refactor
- Improved the structure and modularity of the "describe stacks" command, separating command-line parsing, validation, and execution logic for better maintainability.
- Introduced clearer error handling and validation for command options.
- Enhanced internal interfaces to support more flexible testing and execution.
- Renamed and clarified flag handling functions for affected commands.
-
Tests
- Added comprehensive unit tests for the "describe stacks" command and its argument parsing.
- Updated and improved test coverage for command execution logic.
- Introduced mocks for execution interfaces to facilitate testing.
v1.179.0-rc.1
DEV-3110: Improve Workflow DX @milldr (#1229)
## what - ~~Moved workflow utils and tests into the `pkg/workflow` directory~~ This wont work because we depend on shell utils in internal/exec. Reverted - Update all log messages for workflow_utils to use the charmbracelet log handling - Add TUI message when workflow kicks off an _atmos_ command to report the command being executed ``` $ atmos workflow pass --file test Executing command: `atmos terraform plan mock -s nonprod` <---- this is new Initializing the backend... Initializing provider plugins...Terraform has been successfully initialized!
Switched to workspace "nonprod".
Changes to Outputs:
- bar = "bar nonprod override"
- baz = "baz catalog default"
- foo = "foo nonprod override"
- stage = "nonprod"
You can apply this plan to save these new output values to the Terraform state, without changing any real infrastructure.
- Add a pattern for all workflow errors:
Workflow Error
Explanation
```why
For all other commands, we already have the convention of using a directory for a utilities for a command, such as pkg/workflow. Plus we already had that directory, but it only had incomplete tests- We should always see the command being executed before it runs and see the command that fails when it fails.
- Clear error messages on workflows to explain the true issue in a consistent format
references
screenshots
Summary by CodeRabbit
-
New Features
- Introduced comprehensive workflow testing scenarios and fixtures for CLI workflows, including production and non-production deployments, catalog imports, and multiple workflow step types.
- Added detailed error handling and user-friendly, markdown-formatted error messages for workflow execution failures, invalid configurations, and missing files.
- Enhanced workflow step naming by automatically generating names for unnamed steps.
-
Bug Fixes
- Improved error reporting for invalid workflow manifests, missing workflows, and unsupported step types, providing clearer guidance to users.
-
Tests
- Added extensive test cases and snapshot outputs covering successful and failing workflow executions, invalid step types, missing steps, and shell command errors.
- Refactored and expanded test suites to cover workflow execution logic, step naming, and workflow description features.
-
Chores
- Updated configuration and fixture files to support new workflow testing scenarios and error cases.