Skip to content

Commit 31a0ecf

Browse files
Benbentwoclaude
andcommitted
fix: Skip Windows file permission test + add blog post and roadmap update
- Skip TestCacheFilePermissions on Windows (NTFS doesn't support Unix perms) - Add changelog blog post for browser-based auth feature - Update roadmap: mark browser-based auth milestone as shipped (PR #2148) - Update auth initiative progress from 85% to 92% Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 82fcea0 commit 31a0ecf

File tree

3 files changed

+51
-2
lines changed

3 files changed

+51
-2
lines changed

pkg/auth/identities/aws/webflow_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import (
1111
"net/url"
1212
"os"
1313
"path/filepath"
14+
"runtime"
1415
"testing"
1516
"time"
1617

@@ -717,6 +718,10 @@ func TestWebflowIntegration_AuthenticateFallback(t *testing.T) {
717718
}
718719

719720
func TestCacheFilePermissions(t *testing.T) {
721+
if runtime.GOOS == "windows" {
722+
t.Skip("Windows does not support Unix file permissions")
723+
}
724+
720725
tmpDir := t.TempDir()
721726
t.Setenv("ATMOS_XDG_CACHE_HOME", tmpDir)
722727

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
---
2+
slug: browser-based-auth-aws-user
3+
title: "Browser-Based Authentication for AWS IAM Users"
4+
authors: [atmos]
5+
tags: [feature]
6+
---
7+
8+
Atmos now supports browser-based OAuth2 authentication as an automatic fallback for `aws/user` identities. When no static credentials or keychain entries are available, Atmos opens your browser for interactive sign-in using the same AWS console flow you already know.
9+
10+
<!--truncate-->
11+
12+
## What Changed
13+
14+
The `aws/user` identity type gains a new third-tier authentication fallback. When YAML credentials and keychain credentials are both unavailable, Atmos automatically initiates an OAuth2 PKCE flow via the AWS signin service. This provides the same convenient web-based authentication that SSO users already enjoy, without requiring static access keys.
15+
16+
The flow supports both interactive terminals (browser opens automatically with a spinner) and non-interactive environments (displays a URL for manual authentication).
17+
18+
## How It Works
19+
20+
No configuration is required. Browser authentication is enabled by default for all `aws/user` identities. When triggered, Atmos:
21+
22+
1. Starts a local callback server on an ephemeral port
23+
2. Opens your browser to the AWS signin authorization endpoint
24+
3. Exchanges the authorization code for temporary credentials using PKCE
25+
4. Caches a refresh token for 12-hour session reuse
26+
27+
Subsequent authentications within the 12-hour window reuse the cached refresh token, avoiding repeated browser prompts. Credentials refresh automatically every 15 minutes.
28+
29+
```yaml
30+
# No changes needed - browser auth is enabled by default
31+
identities:
32+
my-user:
33+
kind: aws/user
34+
# credentials:
35+
# webflow_enabled: false # Set to false to disable browser auth
36+
```
37+
38+
## Why This Matters
39+
40+
Many teams are moving away from static IAM access keys for security reasons. Browser-based authentication eliminates the need to generate, store, and rotate long-lived credentials. Users authenticate with their existing AWS console credentials, and Atmos handles the rest.
41+
42+
## Get Involved
43+
44+
Have feedback on the browser authentication flow? Open an issue on [GitHub](https://github.com/cloudposse/atmos).

website/src/data/roadmap.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)