Skip to content

Commit 2162f87

Browse files
authored
docs: prepare CHANGELOG for v0.2.0 release (#11)
Consolidate all unreleased changes since v0.1.0 into the v0.2.0 section: AWS elevation, grant env, multi-CSP, favorites UX, and assorted fixes and refactoring.
1 parent 9a71951 commit 2162f87

File tree

1 file changed

+22
-63
lines changed

1 file changed

+22
-63
lines changed

CHANGELOG.md

Lines changed: 22 additions & 63 deletions
Original file line numberDiff line numberDiff line change
@@ -4,83 +4,42 @@ All notable changes to this project will be documented in this file.
44

55
## [Unreleased]
66

7+
## [0.2.0] - 2026-02-18
8+
79
### Added
810

911
- AWS elevation support (`--provider aws`)
1012
- `grant env` command for AWS credential export: `eval $(grant env --provider aws)`
11-
- Multi-CSP: omitting `--provider` fetches eligibility from all providers and shows combined results
13+
- Multi-CSP support: omitting `--provider` fetches eligibility from all providers and shows combined results
1214
- Provider label `(azure)` / `(aws)` in interactive selector when showing all providers
13-
- `WorkspaceTypeAccount` workspace type for AWS accounts
14-
- `AWSCredentials` model for parsing `accessCredentials` response
15-
16-
### Fixed
17-
18-
- Validate AWS credential fields are non-empty in `ParseAWSCredentials()` — prevents silent empty exports
19-
- Provider validation in `fetchEligibility()` now uses `supportedCSPs` instead of hardcoded switch
20-
- Log per-CSP eligibility errors in verbose mode when `--provider` is omitted
21-
22-
### Removed
23-
24-
- Unused `CSPGCP` constant (re-add when GCP is implemented)
25-
- GCP references from `grant status` provider flag help and `parseProvider()`
26-
27-
### Performance
28-
29-
- Parallelize multi-CSP eligibility queries — all providers fetched concurrently when `--provider` is omitted
30-
31-
### Documentation
32-
33-
- Condense README: remove duplicate Quick Start and How It Works sections, slim command docs, trim obvious troubleshooting entries (~40% reduction)
15+
- Non-interactive `favorites add` with `--target` and `--role` flags for scripting
16+
- Optional name argument for `favorites add` — name can be prompted after interactive target selection
17+
- 30-second API request timeouts on all SCA API calls
18+
- Workspace name resolution in `grant status` via eligibility API cross-reference
19+
- Simplified bug report issue template
3420

3521
### Changed
3622

37-
- Renamed `AzureEligibleTarget` to `EligibleTarget` (CSP-agnostic)
38-
- Provider validation accepts `azure` and `aws` (was azure-only)
39-
- Elevation output shows AWS export statements when credentials are present
40-
- UI selector normalizes workspace type display (case-insensitive)
4123
- `--provider` flag no longer defaults to Azure; omit to see all providers
42-
- Make Identity URL optional in `grant configure` — the SDK auto-discovers it from the username
43-
44-
### Refactored
45-
46-
- Accept `*IdsecProfile` directly in `NewRootCommandWithDeps` to eliminate filesystem access during tests
47-
- Wrap original error in authentication check (`runElevateWithDeps`) instead of discarding it
48-
- Extract `checkResponse` helper in SCA service to deduplicate HTTP error handling across 3 endpoints
49-
- Add safety comments about package-level state and `t.Parallel()` restriction in `cmd/` tests
24+
- Identity URL is now optional in `grant configure` — the SDK auto-discovers it from the username
25+
- `favorites remove` with no arguments now shows a helpful error with usage hint
26+
- Verbose hint suppressed for argument validation errors where it adds no value
27+
- Improved help text with examples and cross-references for all favorites subcommands
5028

5129
### Fixed
5230

53-
- CLAUDE.md documenting Go 1.24+ when `go.mod` requires Go 1.25+
54-
- `favorites add` with partial flags (`--target` without `--role`) hitting auth before flag validation in CI
31+
- `config.Load()` now propagates non-ErrNotExist errors (e.g., permission denied) instead of silently returning defaults
32+
- `favorites add` with partial flags (`--target` without `--role`) no longer requires authentication before reporting the validation error
33+
- Case-insensitive target matching for `--target` and `--role` flags
34+
- Double error output from Cobra eliminated (`SilenceErrors`, `SilenceUsage`)
35+
- `io.ReadAll` errors in SCA service error-response paths now produce fallback messages instead of empty strings
36+
- Error messages lowercased per Go conventions
5537

56-
### Previously Refactored
57-
58-
- Remove dead `mfaMethod` parameter from configure command signatures
59-
- Remove inconsistent nil check for `eligibilityLister` in root command
60-
- Rename snake_case import aliases to Go-idiomatic single-word style (`sdkconfig`, `sdkmodels`, `authmodels`, `scamodels`, `commonmodels`)
61-
- Add `io.LimitReader` (4 KB cap) to error response body reads in SCA service
62-
- Pass `io.Writer` to `buildWorkspaceNameMap` for testable verbose warnings (replaces `os.Stderr`)
63-
- Add context cancellation check in `buildWorkspaceNameMap` CSP loop
64-
- Remove duplicate `(c *Config) GetFavorite()` method; use `config.GetFavorite(cfg, ...)` consistently
65-
- Add defer cleanup for `passedArgValidation` global state in root tests
66-
- Add `t.Parallel()` to pure tests in eligibility, session, selector, and favorites packages
67-
- Consolidate `authenticator` and `profileSaver` interfaces into `cmd/interfaces.go`
68-
- Add `config.LoadDefaultWithPath()` helper to reduce boilerplate config loading
69-
- Extract `parseElevateFlags()` helper to eliminate duplicate flag reading in root command
70-
- Remove duplicate `--target`/`--role` validation in favorites add (handled by `runFavoritesAddWithDeps`)
71-
- Pass pre-loaded config into `runFavoritesAddWithDeps` to avoid double config load
72-
- Move `executeWithHint` test helper from `root.go` to `test_helpers.go`
73-
- Consolidate scattered `init()` functions into single `cmd/commands.go`
74-
- Use `MarkFlagsMutuallyExclusive` for `--favorite` vs `--target`/`--role` flags
75-
- Use `rootCmd.ErrOrStderr()` instead of `os.Stderr` in `Execute()` for testability
76-
- Change `version` command from `Run` to `RunE` for consistency
77-
78-
### Added
38+
### Performance
7939

80-
- 30-second API request timeouts via `context.WithTimeout` on all SCA API calls
81-
- Verbose warning when workspace name lookup fails in `grant status`
82-
- Documentation comments for package-level state variables
40+
- Multi-CSP eligibility queries run concurrently when `--provider` is omitted
8341

8442
### Removed
8543

86-
- `poc/` directory from version control (added to `.gitignore`)
44+
- Unused `--duration` flag (was parsed but never sent to API)
45+
- `CSPGCP` constant (re-add when GCP is implemented)

0 commit comments

Comments
 (0)