Skip to content

Commit 28ca84d

Browse files
authored
[cache] Use provided nix bin cache from api (#1932)
## Summary * If user is logged in, check jetpack API to see if they have nix cache available. If available use it. * Adds new provider framework for logged-in/logged-out functionality. Note: There's a minor issue we need to fix with the access token. It's missing the audience which is needed by the API. Will fix in https://github.com/jetpack-io/opensource ## How was it tested? * Copied over access token with correct audience * Added myself as a trusted user * `devbox add hello` on org that has nix cache. Observed it attempted to use the cache.
1 parent 63981b0 commit 28ca84d

File tree

16 files changed

+251
-93
lines changed

16 files changed

+251
-93
lines changed

go.mod

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@ require (
66
github.com/AlecAivazis/survey/v2 v2.3.7
77
github.com/MakeNowJust/heredoc/v2 v2.0.1
88
github.com/alessio/shellescape v1.4.2
9-
github.com/aws/aws-sdk-go-v2 v1.25.3
9+
github.com/aws/aws-sdk-go-v2 v1.26.0
1010
github.com/aws/aws-sdk-go-v2/config v1.27.7
1111
github.com/aws/aws-sdk-go-v2/credentials v1.17.7
1212
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.9
13-
github.com/aws/aws-sdk-go-v2/service/s3 v1.51.4
13+
github.com/aws/aws-sdk-go-v2/service/cognitoidentity v1.23.4
14+
github.com/aws/aws-sdk-go-v2/service/s3 v1.53.0
1415
github.com/aws/aws-sdk-go-v2/service/sts v1.28.4
1516
github.com/bmatcuk/doublestar/v4 v4.6.1
1617
github.com/briandowns/spinner v1.23.0
@@ -38,8 +39,8 @@ require (
3839
github.com/tailscale/hujson v0.0.0-20221223112325-20486734a56a
3940
github.com/wk8/go-ordered-map/v2 v2.1.8
4041
github.com/zealic/go2node v0.1.0
41-
go.jetpack.io/envsec v0.0.16-0.20240214025624-d233cf877eec
42-
go.jetpack.io/pkg v0.0.0-20240213204231-ec96be3d78fb
42+
go.jetpack.io/envsec v0.0.16-0.20240329013200-4174c0acdb00
43+
go.jetpack.io/pkg v0.0.0-20240329001056-e451f5c5e234
4344
golang.org/x/exp v0.0.0-20240222234643-814bf88cf225
4445
golang.org/x/mod v0.16.0
4546
golang.org/x/sync v0.6.0
@@ -49,21 +50,21 @@ require (
4950
)
5051

5152
require (
52-
connectrpc.com/connect v1.15.0 // indirect
53+
connectrpc.com/connect v1.16.0 // indirect
5354
github.com/InVisionApp/go-health/v2 v2.1.4 // indirect
5455
github.com/InVisionApp/go-logger v1.0.1 // indirect
5556
github.com/ProtonMail/go-crypto v1.0.0 // indirect
5657
github.com/andybalholm/brotli v1.1.0 // indirect
5758
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1 // indirect
5859
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.15.3 // indirect
59-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.3 // indirect
60-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.3 // indirect
60+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.4 // indirect
61+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.4 // indirect
6162
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
62-
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.3 // indirect
63+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.4 // indirect
6364
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.1 // indirect
64-
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.5 // indirect
65-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.5 // indirect
66-
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.3 // indirect
65+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.6 // indirect
66+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.6 // indirect
67+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.4 // indirect
6768
github.com/aws/aws-sdk-go-v2/service/sso v1.20.2 // indirect
6869
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.2 // indirect
6970
github.com/aws/smithy-go v1.20.1 // indirect

go.sum

Lines changed: 28 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2k
1414
cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw=
1515
cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
1616
cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos=
17-
connectrpc.com/connect v1.15.0 h1:lFdeCbZrVVDydAqwr4xGV2y+ULn+0Z73s5JBj2LikWo=
18-
connectrpc.com/connect v1.15.0/go.mod h1:bQmjpDY8xItMnttnurVgOkHUBMRT9cpsNi2O4AjKhmA=
17+
connectrpc.com/connect v1.16.0 h1:rdtfQjZ0OyFkWPTegBNcH7cwquGAN1WzyJy80oFNibg=
18+
connectrpc.com/connect v1.16.0/go.mod h1:XpZAduBQUySsb4/KO5JffORVkDI4B6/EYPi7N8xpNZw=
1919
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
2020
github.com/AlecAivazis/survey/v2 v2.3.7 h1:6I/u8FvytdGsgonrYsVn2t8t4QiRnh6QSTqkkhIiSjQ=
2121
github.com/AlecAivazis/survey/v2 v2.3.7/go.mod h1:xUTIdE4KCOIjsBAE1JYsUPoCqYdZ1reCfTwbto0Fduo=
@@ -42,8 +42,8 @@ github.com/andybalholm/brotli v1.1.0 h1:eLKJA0d02Lf0mVpIDgYnqXcUn0GqVmEFny3VuID1
4242
github.com/andybalholm/brotli v1.1.0/go.mod h1:sms7XGricyQI9K10gOSf56VKKWS4oLer58Q+mhRPtnY=
4343
github.com/arduino/go-paths-helper v1.2.0 h1:qDW93PR5IZUN/jzO4rCtexiwF8P4OIcOmcSgAYLZfY4=
4444
github.com/arduino/go-paths-helper v1.2.0/go.mod h1:HpxtKph+g238EJHq4geEPv9p+gl3v5YYu35Yb+w31Ck=
45-
github.com/aws/aws-sdk-go-v2 v1.25.3 h1:xYiLpZTQs1mzvz5PaI6uR0Wh57ippuEthxS4iK5v0n0=
46-
github.com/aws/aws-sdk-go-v2 v1.25.3/go.mod h1:35hUlJVYd+M++iLI3ALmVwMOyRYMmRqUXpTtRGW+K9I=
45+
github.com/aws/aws-sdk-go-v2 v1.26.0 h1:/Ce4OCiM3EkpW7Y+xUnfAFpchU78K7/Ug01sZni9PgA=
46+
github.com/aws/aws-sdk-go-v2 v1.26.0/go.mod h1:35hUlJVYd+M++iLI3ALmVwMOyRYMmRqUXpTtRGW+K9I=
4747
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1 h1:gTK2uhtAPtFcdRRJilZPx8uJLL2J85xK11nKtWL0wfU=
4848
github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream v1.6.1/go.mod h1:sxpLb+nZk7tIfCWChfd+h4QwHNUR57d8hA1cleTkjJo=
4949
github.com/aws/aws-sdk-go-v2/config v1.27.7 h1:JSfb5nOQF01iOgxFI5OIKWwDiEXWTyTgg1Mm1mHi0A4=
@@ -54,24 +54,26 @@ github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.15.3 h1:p+y7FvkK2dxS+FEwRIDHDe/
5454
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.15.3/go.mod h1:/fYB+FZbDlwlAiynK9KDXlzZl3ANI9JkD0Uhz5FjNT4=
5555
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.9 h1:vXY/Hq1XdxHBIYgBUmug/AbMyIe1AKulPYS2/VE1X70=
5656
github.com/aws/aws-sdk-go-v2/feature/s3/manager v1.16.9/go.mod h1:GyJJTZoHVuENM4TeJEl5Ffs4W9m19u+4wKJcDi/GZ4A=
57-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.3 h1:ifbIbHZyGl1alsAhPIYsHOg5MuApgqOvVeI8wIugXfs=
58-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.3/go.mod h1:oQZXg3c6SNeY6OZrDY+xHcF4VGIEoNotX2B4PrDeoJI=
59-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.3 h1:Qvodo9gHG9F3E8SfYOspPeBt0bjSbsevK8WhRAUHcoY=
60-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.3/go.mod h1:vCKrdLXtybdf/uQd/YfVR2r5pcbNuEYKzMQpcxmeSJw=
57+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.4 h1:0ScVK/4qZ8CIW0k8jOeFVsyS/sAiXpYxRBLolMkuLQM=
58+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.4/go.mod h1:84KyjNZdHC6QZW08nfHI6yZgPd+qRgaWcYsyLUo3QY8=
59+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.4 h1:sHmMWWX5E7guWEFQ9SVo6A3S4xpPrWnd77a6y4WM6PU=
60+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.4/go.mod h1:WjpDrhWisWOIoS9n3nk67A3Ll1vfULJ9Kq6h29HTD48=
6161
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU=
6262
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY=
63-
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.3 h1:mDnFOE2sVkyphMWtTH+stv0eW3k0OTx94K63xpxHty4=
64-
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.3/go.mod h1:V8MuRVcCRt5h1S+Fwu8KbC7l/gBGo3yBAyUbJM2IJOk=
63+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.4 h1:SIkD6T4zGQ+1YIit22wi37CGNkrE7mXV1vNA5VpI3TI=
64+
github.com/aws/aws-sdk-go-v2/internal/v4a v1.3.4/go.mod h1:XfeqbsG0HNedNs0GT+ju4Bs+pFAwsrlzcRdMvdNVf5s=
65+
github.com/aws/aws-sdk-go-v2/service/cognitoidentity v1.23.4 h1:KuN2GQBLzac3PdhsVBt7n11jKfRsXg0OZSuuizF+yNw=
66+
github.com/aws/aws-sdk-go-v2/service/cognitoidentity v1.23.4/go.mod h1:OnFArLhSkVvZjmlx3wiYir/O44gpEerCXPJbK+LQBSE=
6567
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.1 h1:EyBZibRTVAs6ECHZOw5/wlylS9OcTzwyjeQMudmREjE=
6668
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.1/go.mod h1:JKpmtYhhPs7D97NL/ltqz7yCkERFW5dOlHyVl66ZYF8=
67-
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.5 h1:mbWNpfRUTT6bnacmvOTKXZjR/HycibdWzNpfbrbLDIs=
68-
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.5/go.mod h1:FCOPWGjsshkkICJIn9hq9xr6dLKtyaWpuUojiN3W1/8=
69-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.5 h1:K/NXvIftOlX+oGgWGIa3jDyYLDNsdVhsjHmsBH2GLAQ=
70-
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.5/go.mod h1:cl9HGLV66EnCmMNzq4sYOti+/xo8w34CsgzVtm2GgsY=
71-
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.3 h1:4t+QEX7BsXz98W8W1lNvMAG+NX8qHz2CjLBxQKku40g=
72-
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.3/go.mod h1:oFcjjUq5Hm09N9rpxTdeMeLeQcxS7mIkBkL8qUKng+A=
73-
github.com/aws/aws-sdk-go-v2/service/s3 v1.51.4 h1:lW5xUzOPGAMY7HPuNF4FdyBwRc3UJ/e8KsapbesVeNU=
74-
github.com/aws/aws-sdk-go-v2/service/s3 v1.51.4/go.mod h1:MGTaf3x/+z7ZGugCGvepnx2DS6+caCYYqKhzVoLNYPk=
69+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.6 h1:NkHCgg0Ck86c5PTOzBZ0JRccI51suJDg5lgFtxBu1ek=
70+
github.com/aws/aws-sdk-go-v2/service/internal/checksum v1.3.6/go.mod h1:mjTpxjC8v4SeINTngrnKFgm2QUi+Jm+etTbCxh8W4uU=
71+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.6 h1:b+E7zIUHMmcB4Dckjpkapoy47W6C9QBv/zoUP+Hn8Kc=
72+
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.6/go.mod h1:S2fNV0rxrP78NhPbCZeQgY8H9jdDMeGtwcfZIRxzBqU=
73+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.4 h1:uDj2K47EM1reAYU9jVlQ1M5YENI1u6a/TxJpf6AeOLA=
74+
github.com/aws/aws-sdk-go-v2/service/internal/s3shared v1.17.4/go.mod h1:XKCODf4RKHppc96c2EZBGV/oCUC7OClxAo2MEyg4pIk=
75+
github.com/aws/aws-sdk-go-v2/service/s3 v1.53.0 h1:r3o2YsgW9zRcIP3Q0WCmttFVhTuugeKIvT5z9xDspc0=
76+
github.com/aws/aws-sdk-go-v2/service/s3 v1.53.0/go.mod h1:w2E4f8PUfNtyjfL6Iu+mWI96FGttE03z3UdNcUEC4tA=
7577
github.com/aws/aws-sdk-go-v2/service/sso v1.20.2 h1:XOPfar83RIRPEzfihnp+U6udOveKZJvPQ76SKWrLRHc=
7678
github.com/aws/aws-sdk-go-v2/service/sso v1.20.2/go.mod h1:Vv9Xyk1KMHXrR3vNQe8W5LMFdTjSeWk0gBZBzvf3Qa0=
7779
github.com/aws/aws-sdk-go-v2/service/ssooidc v1.23.2 h1:pi0Skl6mNl2w8qWZXcdOyg197Zsf4G97U7Sso9JXGZE=
@@ -361,10 +363,14 @@ github.com/yuin/gopher-lua v0.0.0-20190514113301-1cd887cd7036/go.mod h1:gqRgreBU
361363
github.com/zaffka/mongodb-boltdb-mock v0.0.0-20221014194232-b4bb03fbe3a0/go.mod h1:GsDD1qsG+86MeeCG7ndi6Ei3iGthKL3wQ7PTFigDfNY=
362364
github.com/zealic/go2node v0.1.0 h1:ofxpve08cmLJBwFdI0lPCk9jfwGWOSD+s6216x0oAaA=
363365
github.com/zealic/go2node v0.1.0/go.mod h1:GrkFr+HctXwP7vzcU9RsgtAeJjTQ6Ud0IPCQAqpTfBg=
364-
go.jetpack.io/envsec v0.0.16-0.20240214025624-d233cf877eec h1:IvdOF1C8tAxvKEauWBd/4IWXZfeyXh5vmcfTrcTBPvQ=
365-
go.jetpack.io/envsec v0.0.16-0.20240214025624-d233cf877eec/go.mod h1:koTmI1q2QKqtxaX4P/7r5ygODwgJQ56FKoKRfzpZ0bM=
366-
go.jetpack.io/pkg v0.0.0-20240213204231-ec96be3d78fb h1:ELaZEV3BL+/GDfPxWPXt6ODNig/VlywWhfAC4P8EG5A=
367-
go.jetpack.io/pkg v0.0.0-20240213204231-ec96be3d78fb/go.mod h1:kGUL8aZ7ddvoGro0AQxXos9GKn5Qw0J18qW7d5FP4Ws=
366+
go.jetpack.io/envsec v0.0.16-0.20240327051701-1c56cf3690d7 h1:f+EANkek7CaHK6LS9RIm9rbOt2WrZYyYFTsXGKUdMgc=
367+
go.jetpack.io/envsec v0.0.16-0.20240327051701-1c56cf3690d7/go.mod h1:Z4tKIpAkdW4tpNUlToVLg7LZFl688GxWae02m3w//G0=
368+
go.jetpack.io/envsec v0.0.16-0.20240329013200-4174c0acdb00 h1:Kb+OlWOntAq+1nF+01ntqnQEqSJkFmLLS0RX5sl5zak=
369+
go.jetpack.io/envsec v0.0.16-0.20240329013200-4174c0acdb00/go.mod h1:dVG2n8fBAGpQczW8yk/6wuXb9uEhzaJF7wGXkGLRRCU=
370+
go.jetpack.io/pkg v0.0.0-20240327051701-89e2d24bc65e h1:JuyexYMVBsXwMrnmcCYVEOP9+Mrtvo0mAHSGeWdDUS0=
371+
go.jetpack.io/pkg v0.0.0-20240327051701-89e2d24bc65e/go.mod h1:vpIQT+m8iHO11v6bgMMG6iWfbGE2vxvLr9k7hLb4OeU=
372+
go.jetpack.io/pkg v0.0.0-20240329001056-e451f5c5e234 h1:MHZNJeQQwxqwVJhaCKtHAkCXrv3sWQkJoVf0i8Pf1Ro=
373+
go.jetpack.io/pkg v0.0.0-20240329001056-e451f5c5e234/go.mod h1:vpIQT+m8iHO11v6bgMMG6iWfbGE2vxvLr9k7hLb4OeU=
368374
go.jetpack.io/typeid v1.0.0 h1:8gQ+iYGdyiQ0Pr40ydSB/PzMOIwlXX5DTojp1CBeSPQ=
369375
go.jetpack.io/typeid v1.0.0/go.mod h1:+UPEaECUgFxgAjFPn5Yf9eO/3ft/3xZ98Eahv9JW/GQ=
370376
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=

internal/boxcli/auth.go

Lines changed: 3 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,15 @@
44
package boxcli
55

66
import (
7-
"context"
87
"fmt"
98
"os"
109

1110
"github.com/spf13/cobra"
12-
"go.jetpack.io/devbox/internal/build"
1311
"go.jetpack.io/devbox/internal/devbox"
1412
"go.jetpack.io/devbox/internal/devbox/devopt"
15-
"go.jetpack.io/pkg/auth"
16-
"go.jetpack.io/pkg/auth/session"
13+
"go.jetpack.io/devbox/internal/devbox/providers/identity"
1714
)
1815

19-
// This matches default scopes for envsec. TODO: export this in envsec.
20-
var scopes = []string{"openid", "offline_access", "email", "profile"}
21-
2216
func authCmd() *cobra.Command {
2317
cmd := &cobra.Command{
2418
Use: "auth",
@@ -38,7 +32,7 @@ func loginCmd() *cobra.Command {
3832
Short: "Login to devbox",
3933
Args: cobra.ExactArgs(0),
4034
RunE: func(cmd *cobra.Command, args []string) error {
41-
c, err := newAuthClient()
35+
c, err := identity.Get().AuthClient()
4236
if err != nil {
4337
return err
4438
}
@@ -60,7 +54,7 @@ func logoutCmd() *cobra.Command {
6054
Short: "Logout from devbox",
6155
Args: cobra.ExactArgs(0),
6256
RunE: func(cmd *cobra.Command, args []string) error {
63-
c, err := newAuthClient()
57+
c, err := identity.Get().AuthClient()
6458
if err != nil {
6559
return err
6660
}
@@ -108,20 +102,3 @@ func whoAmICmd() *cobra.Command {
108102

109103
return cmd
110104
}
111-
112-
func genSession(ctx context.Context) (*session.Token, error) {
113-
c, err := newAuthClient()
114-
if err != nil {
115-
return nil, err
116-
}
117-
return c.GetSession(ctx)
118-
}
119-
120-
func newAuthClient() (*auth.Client, error) {
121-
return auth.NewClient(
122-
build.Issuer(),
123-
build.ClientID(),
124-
scopes,
125-
build.SuccessRedirect(),
126-
)
127-
}

internal/boxcli/pull.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import (
1515
"go.jetpack.io/devbox/internal/boxcli/usererr"
1616
"go.jetpack.io/devbox/internal/devbox"
1717
"go.jetpack.io/devbox/internal/devbox/devopt"
18+
"go.jetpack.io/devbox/internal/devbox/providers/identity"
1819
"go.jetpack.io/devbox/internal/goutil"
1920
"go.jetpack.io/devbox/internal/pullbox/s3"
2021
"go.jetpack.io/pkg/auth"
@@ -64,7 +65,7 @@ func pullCmdFunc(cmd *cobra.Command, url string, flags *pullCmdFlags) error {
6465
}
6566

6667
var creds devopt.Credentials
67-
t, err := genSession(cmd.Context())
68+
t, err := identity.Get().GenSession(cmd.Context())
6869
if err != nil && !errors.Is(err, auth.ErrNotLoggedIn) {
6970
return errors.WithStack(err)
7071
} else if t != nil && err == nil {

internal/boxcli/push.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import (
1010

1111
"go.jetpack.io/devbox/internal/devbox"
1212
"go.jetpack.io/devbox/internal/devbox/devopt"
13+
"go.jetpack.io/devbox/internal/devbox/providers/identity"
1314
"go.jetpack.io/devbox/internal/goutil"
1415
)
1516

@@ -43,7 +44,7 @@ func pushCmdFunc(cmd *cobra.Command, url string, flags pushCmdFlags) error {
4344
if err != nil {
4445
return errors.WithStack(err)
4546
}
46-
t, err := genSession(cmd.Context())
47+
t, err := identity.Get().GenSession(cmd.Context())
4748
var creds devopt.Credentials
4849
if err != nil && !errors.Is(err, auth.ErrNotLoggedIn) {
4950
return errors.WithStack(err)

internal/build/build.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,3 +87,7 @@ func SuccessRedirect() string {
8787
}
8888
return "https://auth.jetpack.io/account/login/success"
8989
}
90+
91+
func Audience() []string {
92+
return []string{"https://api.jetpack.io"}
93+
}

internal/devbox/bincache/bincache.go

Lines changed: 0 additions & 25 deletions
This file was deleted.

internal/devbox/cache.go

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,23 @@ package devbox
33
import (
44
"context"
55

6+
"go.jetpack.io/devbox/internal/devbox/providers/nixcache"
67
"go.jetpack.io/devbox/internal/nix"
78
)
89

910
func (d *Devbox) CacheCopy(ctx context.Context, cacheURI string) error {
11+
var err error
12+
cacheConfig := nixcache.NixCacheConfig{URI: cacheURI}
13+
if cacheConfig.URI == "" {
14+
cacheConfig, err = d.providers.NixCache.Config(ctx)
15+
if err != nil {
16+
return err
17+
}
18+
}
1019
profilePath, err := d.profilePath()
1120
if err != nil {
1221
return err
1322
}
1423

15-
return nix.CopyInstallableToCache(ctx, d.stderr, cacheURI, profilePath)
24+
return nix.CopyInstallableToCache(ctx, d.stderr, cacheConfig.URI, profilePath)
1625
}

internal/devbox/devbox.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import (
2727
"go.jetpack.io/devbox/internal/cachehash"
2828
"go.jetpack.io/devbox/internal/devbox/envpath"
2929
"go.jetpack.io/devbox/internal/devbox/generate"
30+
"go.jetpack.io/devbox/internal/devbox/providers"
3031
"go.jetpack.io/devbox/internal/devpkg"
3132
"go.jetpack.io/devbox/internal/devpkg/pkgtype"
3233
"go.jetpack.io/devbox/internal/searcher"
@@ -65,6 +66,7 @@ type Devbox struct {
6566
lockfile *lock.File
6667
nix nix.Nixer
6768
projectDir string
69+
providers providers.Providers
6870
pluginManager *plugin.Manager
6971
preservePathStack bool
7072
pure bool

internal/devbox/packages.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ import (
1717
"github.com/fatih/color"
1818
"github.com/pkg/errors"
1919
"github.com/samber/lo"
20-
"go.jetpack.io/devbox/internal/devbox/bincache"
2120
"go.jetpack.io/devbox/internal/devbox/devopt"
2221
"go.jetpack.io/devbox/internal/devconfig"
2322
"go.jetpack.io/devbox/internal/devpkg"
@@ -446,17 +445,18 @@ func (d *Devbox) installNixPackagesToStore(ctx context.Context, mode installMode
446445
flags = append(flags, "--refresh")
447446
}
448447

449-
extraSubstituter, err := bincache.ExtraSubstituter()
448+
nixCacheConfig, err := d.providers.NixCache.Config(ctx)
450449
if err != nil {
451450
return err
452451
}
453452

454453
for _, installable := range installables {
455454
args := &nix.BuildArgs{
456455
AllowInsecure: pkg.HasAllowInsecure(),
456+
Env: nixCacheConfig.CredentialsEnvVars(),
457+
ExtraSubstituter: nixCacheConfig.URI,
457458
Flags: flags,
458459
Writer: d.stderr,
459-
ExtraSubstituter: extraSubstituter,
460460
}
461461
err = nix.Build(ctx, args, installable)
462462
if err != nil {

0 commit comments

Comments
 (0)