Serge Smertin
b87b4b0f40
Added `bricks auth login` and `bricks auth token` ( #158 )
...
# Auth challenge (happy path)
Simplified description of [PKCE](https://oauth.net/2/pkce/ )
implementation:
```mermaid
sequenceDiagram
autonumber
actor User
User ->> CLI: type `bricks auth login HOST`
CLI ->>+ HOST: request OIDC endpoints
HOST ->>- CLI: auth & token endpoints
CLI ->> CLI: start embedded server to consume redirects (lock)
CLI -->>+ Auth Endpoint: open browser with RND1 + SHA256(RND2)
User ->>+ Auth Endpoint: Go through SSO
Auth Endpoint ->>- CLI: AUTH CODE + 'RND1 (redirect)
CLI ->>+ Token Endpoint: Exchange: AUTH CODE + RND2
Token Endpoint ->>- CLI: Access Token (JWT) + refresh + expiry
CLI ->> Token cache: Save Access Token (JWT) + refresh + expiry
CLI ->> User: success
```
# Token refresh (happy path)
```mermaid
sequenceDiagram
autonumber
actor User
User ->> CLI: type `bricks token HOST`
CLI ->> CLI: acquire lock (same local addr as redirect server)
CLI ->>+ Token cache: read token
critical token not expired
Token cache ->>- User: JWT (without refresh)
option token is expired
CLI ->>+ HOST: request OIDC endpoints
HOST ->>- CLI: auth & token endpoints
CLI ->>+ Token Endpoint: refresh token
Token Endpoint ->>- CLI: JWT (refreshed)
CLI ->> Token cache: save JWT (refreshed)
CLI ->> User: JWT (refreshed)
option no auth for host
CLI -X User: no auth configured
end
```
2023-01-06 16:15:57 +01:00
Pieter Noordhuis
fdb8c97f6b
Exit with non-zero status on errors ( #148 )
2022-12-21 11:58:51 +01:00
shreyas-goenka
d9d295f2a9
Implement Terraform state synchronization and deploy ( #98 )
...
https://user-images.githubusercontent.com/88374338/203669797-abebf99e-8fa6-4d6e-b57a-abd172d8020d.mov
2022-12-06 00:40:45 +01:00
Pieter Noordhuis
07f07694a4
Function to return workspace client on bundle.Bundle ( #100 )
...
Complementary command to check the identity in the context of a bundle
environment:
For example:
```
bricks bundle debug whoami -e development
```
2022-11-23 15:20:03 +01:00
Pieter Noordhuis
3b351d3b00
Add command that writes the materialized bundle configuration to stdout ( #95 )
...
Used to inspect the bundle configuration after loading and merging all
files.
Once we add variable interpolation this command could show the result
after interpolation as well.
Each of the mutations to this configuration is observable, so we could
add a mode that writes each of the intermediate versions to disk for
even more fine grained introspection.
2022-11-21 15:39:53 +01:00
Shreyas Goenka
0c24e6f82e
Revert "WIP initial version of the workspace file lock done"
...
This reverts commit 02eec1f990
.
2022-11-16 23:50:17 +01:00
Shreyas Goenka
02eec1f990
WIP initial version of the workspace file lock done
2022-11-16 17:30:46 +01:00
Pieter Noordhuis
38a9dabcbe
Add command to make API calls ( #80 )
...
Not settled whether this should live as a top level command or hidden
under some debug scope. Either way, the ability to make arbitrary API
calls and leverage unified auth is a super useful tool.
2022-10-10 10:27:45 +02:00
Kartik Gupta
457f3ad3c2
Add `bricks configure` command to bricks CLI ( #18 )
...
* bricks configure
* remove t.setenv
* Read token and host from stdin
* Update .vscode/testing.code-snippets
Co-authored-by: Serge Smertin <259697+nfx@users.noreply.github.com>
Co-authored-by: Serge Smertin <259697+nfx@users.noreply.github.com>
2022-09-05 20:25:54 +02:00
Serge Smertin
32ae59c1bc
Experimental sync command
2022-07-07 20:56:59 +02:00
Serge Smertin
3d3b722eda
updated dependencies
2022-05-14 19:56:09 +02:00
Serge Smertin
15fd93a012
Initial commit
2022-05-13 15:30:22 +02:00