You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
docs: update realm PRDs with validation and directory structure changes
- Replace sanitization with validation (error on invalid characters)
- Update directory structure: ~/.config/atmos/{realm}/{cloud}/{provider}/
- All cloud providers now share common base path with realm as top-level
- Add clear error examples for invalid realm values
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1.Must contain only allowed characters (lowercase alphanumeric, hyphen, underscore)
54
+
2.Must not be empty
55
+
3.Must not start or end with hyphen or underscore
56
+
4.Must not contain consecutive hyphens or underscores
57
57
5. Maximum 64 characters
58
+
6. Must not contain path traversal sequences (`/`, `\`, `..`)
59
+
60
+
**Error behavior:** Invalid realm values result in an immediate error with a clear message explaining what characters are allowed. No sanitization is performed—the user must provide a valid realm value.
61
+
62
+
**Example error:**
63
+
```
64
+
Error: Invalid realm value 'my/realm'
65
+
66
+
Realm values must contain only lowercase letters, numbers, hyphens, and underscores.
67
+
The following characters are not allowed: /
68
+
69
+
Please update your auth.realm configuration or ATMOS_AUTH_REALM environment variable.
**Note:** All cloud providers now share the same base path (`~/.config/atmos/`) with realm as the top-level directory, followed by cloud type, then provider.
76
91
77
92
### Directory Structure
78
93
79
94
```
80
-
~/.config/atmos/aws/
95
+
~/.config/atmos/
81
96
├── a1b2c3d4/ # Realm (auto-hash from Customer A's path)
82
-
│ ├── aws-sso/
83
-
│ │ ├── credentials # INI file with identity profiles
84
-
│ │ └── config
85
-
│ └── aws-user/
86
-
│ ├── credentials
87
-
│ └── config
97
+
│ └── aws/
98
+
│ ├── aws-sso/
99
+
│ │ ├── credentials # INI file with identity profiles
100
+
│ │ └── config
101
+
│ └── aws-user/
102
+
│ ├── credentials
103
+
│ └── config
88
104
│
89
105
├── b5c6d7e8/ # Realm (auto-hash from Customer B's path)
90
-
│ └── aws-sso/ # Same provider name, different realm
91
-
│ ├── credentials
92
-
│ └── config
106
+
│ └── aws/
107
+
│ └── aws-sso/ # Same provider name, different realm
108
+
│ ├── credentials
109
+
│ └── config
93
110
│
94
111
└── customer-acme/ # Realm (explicit config)
95
-
└── aws-sso/
96
-
├── credentials
97
-
└── config
112
+
├── aws/
113
+
│ └── aws-sso/
114
+
│ ├── credentials
115
+
│ └── config
116
+
└── azure/
117
+
└── azure-cli/
118
+
└── credentials
98
119
```
99
120
100
121
### Keyring Storage
@@ -114,8 +135,8 @@ Keyring keys include realm prefix:
114
135
When credentials are set up, file paths include the realm:
0 commit comments