Releases: saimeda32/grantry
Release list
v0.13.0
Added
-
grantry install --gatedmakes grantry the agent's only credential source. It writes project-scope files that blank the ambientAWS_*variables in the agent's own shell and setGRANTRY_CALLER=agent, and adds a short steering note telling the agent to fetch credentials via theget_credentialsMCP tool. It does not ban theawscommand — the agent still runsaws/boto3, just only with the short-lived, policy-checked credentials grantry issues. Written per client where supported (Claude Codesettings.json, the VS Code forks'terminal.integrated.env); Copilot CLI and Claude Desktop get the steering note only. Idempotent and scoped to the current directory.This is defense-in-depth, not a guarantee: it cannot remove
~/.aws/credentials, the SSO cache, or an instance role, and does not control network egress. For a hard boundary, run the agent with no ambient AWS access at all. The command says so plainly.
v0.12.0
Changed
- One identity spelling everywhere. An identity is now written
account.roleingrantry ls, policy patterns, the audit log, and the~/.aws/configprofile name grantry writes, so the exact same string works for bothgrantry run <id>and the nativeaws --profile <id>. Previously grantry showedaccount/rolewhile the profile name usedaccount.role, which forced you to remember two forms. The dot is the canonical separator; the olderaccount/roleslash form is still accepted as input and in policy patterns, so existing policies, scripts, and muscle memory keep working.grantry initnow generates dot-form patterns.
Fixed
grantry populateandloginwriteaccount.roleprofile names that match the identity you see ingrantry ls, removing the earlier.vs/mismatch.
v0.11.1
Changed
credential-processno longer attempts an interactive login. It is machine-facing (the AWS SDK invokes it headless), so it must never open a browser. When credentials are needed mid-task, grantry refreshes the SSO token silently using the stored refresh token and mints fresh role credentials with no interaction, which is what keeps a running agent's access working. Only when the refresh token itself has expired does it fail, cleanly, asking you to rungrantry login. The 0.11.0 auto-login (for a human at a terminal) still coversls,run,switch,console,populate,graph,init, andadmin.
v0.11.0
Changed
- Shell-safe identity keys. Spaces in an account or role name now collapse to hyphens, so an account named "Acme Corp Account" shows and resolves as
Acme-Corp-Account/AWSReadOnlyAccesswith no quoting needed. Lookups still accept the raw spaced name, so pasting a name from the AWS console keeps working. - Auto-login. A command that needs a session but finds none now logs you in automatically instead of stopping with "Run 'grantry login' first" (
ls,run,switch,console,populate,graph,init,admin,credential-process). Non-interactive contexts (no terminal) still report the missing session on stderr rather than opening a browser.
Fixed
- Access graph "Export SVG" no longer produces an all-black image. The exported file carries its own colors and an opaque background, rendering the same as the on-screen graph in any viewer.
v0.10.6
After your first grantry login, grantry now suggests running grantry completion --install to turn on TAB completion (shown once). pip and pipx cannot set up completion at install time, so this is the nudge you were expecting after install.
v0.10.5
- Docs: the README and project site now show a screenshot and an interactive navigation GIF of the org access graph; the terminal demo GIF now demonstrates TAB completion.
- Fixed: no more
BrokenPipeErrortraceback when output is piped to a reader that closes early (grantry ... | head,source <(grantry completion zsh)) — grantry exits quietly on SIGPIPE like a normal Unix tool.
v0.10.4
Simpler, less annoying access graph
- The page scrolls normally again — removed the scroll-to-zoom that hijacked the wheel.
- Removed the privilege/prod filter chips — they cluttered more than they helped. A static colour legend explains the levels; hover/click focus and search remain for exploration.
- Missing enrichment is now visible — when the crawl role can't read group members, permission-set policies, or OUs, the panel and the crawl output say so (and name the missing permission, e.g.
identitystore:ListGroupMemberships) instead of silently leaving it out.
v0.10.3
v0.10.2
Running grantry completion at a prompt now prints how to turn completion on (grantry completion --install) instead of dumping a wall of shell script. It still emits the raw script when sourced or piped, so source <(grantry completion zsh) keeps working.
v0.10.1
grantry completion --installsets up shell completion in one command (pipx/pip can't do it for you): it detects your shell and adds the source line to your rc file.- Fixed: completion now completes identities after
--as,--identity, and--profile(soadmin assignments --as <TAB>works), not only the positionalrun/switch/console. - Docs clarify that TAB completion is prefix-based; for "type a few letters anywhere" filtering, omit the identity and use the picker.