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
Copy file name to clipboardExpand all lines: CHANGELOG.md
+11-1Lines changed: 11 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
8
8
## [Unreleased]
9
9
10
+
## [0.6.6] - 2025-10-23
11
+
12
+
### Added
13
+
-**Auto-detect SOPS age key path** - Bootstrap `target` is now optional for SOPS age keys. If the source name contains "sops" and "age", it automatically uses the platform-specific default path
14
+
-**Helpful SOPS error messages** - When SOPS fails to decrypt due to missing age keys, provide clear hint suggesting `comet bootstrap` or setting `SOPS_AGE_KEY`
15
+
16
+
### Changed
17
+
- Improved bootstrap configuration - SOPS age key target path is now optional and auto-detected based on platform
// Detect common SOPS errors and provide helpful messages
36
+
errMsg:=err.Error()
37
+
ifstrings.Contains(errMsg, "no age identity") ||
38
+
strings.Contains(errMsg, "0 successful groups required") ||
39
+
strings.Contains(errMsg, "failed to get the data key") {
40
+
return"", fmt.Errorf("failed to decrypt SOPS file: %w\n\nℹ️ Hint: Age key might be missing. Try running:\n comet bootstrap\n\nOr set the key manually:\n export SOPS_AGE_KEY=\"...\"", err)
41
+
}
42
+
return"", fmt.Errorf("failed to decrypt SOPS file: %w", err)
SOPS needs the `SOPS_AGE_KEY` or `SOPS_AGE_KEY_FILE` environment variable to decrypt files. Instead of fetching this from 1Password on every command (4s overhead), bootstrap caches it to `~/.config/sops/age/keys.txt` once, making all subsequent commands fast.
96
+
SOPS needs the `SOPS_AGE_KEY` or `SOPS_AGE_KEY_FILE` environment variable to decrypt files. Instead of fetching this from 1Password on every command (4s overhead), bootstrap caches it to the platform-specific default location once, making all subsequent commands fast.
97
+
98
+
The `target` path is optional - Comet automatically detects SOPS age keys (source containing "sops" and "age") and uses the correct platform-specific path where SOPS expects to find them.
0 commit comments