File tree Expand file tree Collapse file tree 4 files changed +41
-3
lines changed
Expand file tree Collapse file tree 4 files changed +41
-3
lines changed Original file line number Diff line number Diff line change @@ -6,6 +6,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
66
77## [ Unreleased]
88
9+ ### Added
10+ - ` cb open ` can now take a non-default redirect URL using ` CB_REDIRECT_URL ` .
11+
912## [ 3.6.3] - 2025-04-03
1013### Fixed
1114- Missing values from cluster state enum.
Original file line number Diff line number Diff line change @@ -27,7 +27,38 @@ Spectator.describe CB::Open do
2727
2828 expect(client).to receive(:create_session )
2929 .with(
30- Client ::SessionCreateParams .new(generate_one_time_token: true )
30+ Client ::SessionCreateParams .new(
31+ generate_one_time_token: true ,
32+ redirect_url: nil
33+ )
34+ )
35+ .and_return(
36+ CB ::Model ::Session .new(id: session_id, one_time_token: session_one_time_token)
37+ )
38+
39+ action.call
40+
41+ expected_login_url = " https://#{ client_host } /sessions/#{ session_id } /actions/login?one_time_token=#{ session_one_time_token } "
42+ expect(open_args).to eq([expected_login_url])
43+ end
44+
45+ it " redirects to a URL based on env var" do
46+ ENV [" CB_API_KEY" ] = nil
47+ ENV [" CB_REDIRECT_URL" ] = " https://my-custom-url.crunchybridge.com"
48+
49+ open_args : Array (String )? = nil
50+
51+ action.open = - > (args : Array (String ), _env : Process ::Env ) do
52+ open_args = args
53+ nil
54+ end
55+
56+ expect(client).to receive(:create_session )
57+ .with(
58+ Client ::SessionCreateParams .new(
59+ generate_one_time_token: true ,
60+ redirect_url: " https://my-custom-url.crunchybridge.com"
61+ )
3162 )
3263 .and_return(
3364 CB ::Model ::Session .new(id: session_id, one_time_token: session_one_time_token)
Original file line number Diff line number Diff line change @@ -14,7 +14,10 @@ module CB
1414 def run
1515 raise Error .new " Cannot open browser session with #{ " CB_API_KEY" .colorize.red.bold} set." if ENV [" CB_API_KEY" ]?
1616
17- session = client.create_session Client ::SessionCreateParams .new(generate_one_time_token: true )
17+ session = client.create_session Client ::SessionCreateParams .new(
18+ redirect_url: ENV [" CB_REDIRECT_URL" ],
19+ generate_one_time_token: true ,
20+ )
1821 # A one-time token is sent via query string since we don't have any choice
1922 # while using an executable like `open`, which means that there is some
2023 # potential danger of it leaking to logs. To protect against this, tokens
Original file line number Diff line number Diff line change 11module CB
22 class Client
33 jrecord SessionCreateParams ,
4- generate_one_time_token : Bool
4+ generate_one_time_token : Bool ,
5+ redirect_url : String ?
56
67 # https://crunchybridgeapiinternal.docs.apiary.io/#reference/0/sessions/create-session
78 def create_session (params : SessionCreateParams )
You can’t perform that action at this time.
0 commit comments