cli/auth: add -j short form for `token --jurisdiction` · Entire

cli/auth: add -j short form for token --jurisdiction

9c2b149→main·

georg·1w ago·2 files·+18 added/-1 removed

Co-Authored-By: Claude Opus 4.8 (1M context) noreply@anthropic.com Claude-Session: https://claude.ai/code/session_01WJrSU43U72744uN8SXBp7A

Sessions

b7c4e5869310View transcript

[?
Rebase onto origin/main and Add Token FlagClaude Code·Opus 4.8[1m]·2 steps](/content/gh/entireio/cli/session/9cb0f14c-0f8d-4571-96ef-7d9214263fec#timeline-b7c4e5869310/index.html)

Changes

2

203 unmodified lines

204
205
206
207
207
208
209
210

203 unmodified lines

},
    }
    addInsecureHTTPAuthFlag(cmd, &insecureHTTPAuth)
    cmd.Flags().StringVar(&jurisdiction, "jurisdiction", "", "mint a jurisdictional identity token for this jurisdiction slug (e.g. us, eu) for use against that jurisdiction's entire-api cells")
    cmd.Flags().StringVarP(&jurisdiction, "jurisdiction", "j", "", "mint a jurisdictional identity token for this jurisdiction slug (e.g. us, eu) for use against that jurisdiction's entire-api cells")
    return cmd
}

Mcmd/entire/cli/auth.go+1/-1

111 unmodified lines

112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134

111 unmodified lines

require.Empty(t, errOut.String(), "stdout-only: no diagnostics on success")
    })

t.Run("-j shorthand behaves like --jurisdiction", func(t *testing.T) {
    t.Setenv("ENTIRE_CONFIG_DIR", t.TempDir())
    envToken := makeTestJWT(t, fmt.Sprintf(`{"aud":"https://us.auth.entire.io","home_jurisdiction":"us","exp":%d}`, time.Now().Add(2*time.Hour).Unix()))
    t.Setenv("ENTIRE_TOKEN", envToken)
    t.Cleanup(auth.SetCellExchangeTransportForTest(t, stubExchangeRT{token: "jurisdiction-token"}))

cmd := newAuthTokenCmd()
    cmd.SetArgs([]string{"-j", "us"})
    var out, errOut bytes.Buffer
    cmd.SetOut(&out)
    cmd.SetErr(&errOut)

require.NoError(t, cmd.ExecuteContext(t.Context()))
    require.Equal(t, "jurisdiction-token\n", out.String())
    require.Empty(t, errOut.String(), "stdout-only: no diagnostics on success")
})

t.Run("not logged in errors silently with a hint", func(t *testing.T) {
    t.Setenv("ENTIRE_CONFIG_DIR", t.TempDir())
    // No ENTIRE_TOKEN → stored path. Stub discovery to surface ErrNotLoggedIn