Skip to content

Commit 31a759d

Browse files
committed
fix: sdkserver: credentials: ensure credential helpers exist
Signed-off-by: Grant Linville <[email protected]>
1 parent 90e7868 commit 31a759d

File tree

1 file changed

+15
-6
lines changed

1 file changed

+15
-6
lines changed

pkg/sdkserver/credentials.go

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package sdkserver
22

33
import (
4+
"context"
45
"encoding/json"
56
"fmt"
67
"net/http"
@@ -11,14 +12,22 @@ import (
1112
"github.com/gptscript-ai/gptscript/pkg/repos/runtimes"
1213
)
1314

14-
func (s *server) initializeCredentialStore(ctx string) (credentials.CredentialStore, error) {
15+
func (s *server) initializeCredentialStore(ctx context.Context, credCtx string) (credentials.CredentialStore, error) {
1516
cfg, err := config.ReadCLIConfig(s.gptscriptOpts.OpenAI.ConfigFile)
1617
if err != nil {
1718
return nil, fmt.Errorf("failed to read CLI config: %w", err)
1819
}
1920

2021
// TODO - are we sure we want to always use runtimes.Default here?
21-
store, err := credentials.NewStore(cfg, runtimes.Default(s.gptscriptOpts.Cache.CacheDir), ctx, s.gptscriptOpts.Cache.CacheDir)
22+
runtimeManager := runtimes.Default(s.gptscriptOpts.Cache.CacheDir)
23+
if err := runtimeManager.SetUpCredentialHelpers(ctx, cfg); err != nil {
24+
return nil, fmt.Errorf("failed to set up credential helpers: %w", err)
25+
}
26+
if err := runtimeManager.EnsureCredentialHelpers(ctx); err != nil {
27+
return nil, fmt.Errorf("failed to ensure credential helpers: %w", err)
28+
}
29+
30+
store, err := credentials.NewStore(cfg, runtimeManager, credCtx, s.gptscriptOpts.Cache.CacheDir)
2231
if err != nil {
2332
return nil, fmt.Errorf("failed to initialize credential store: %w", err)
2433
}
@@ -40,7 +49,7 @@ func (s *server) listCredentials(w http.ResponseWriter, r *http.Request) {
4049
req.Context = credentials.DefaultCredentialContext
4150
}
4251

43-
store, err := s.initializeCredentialStore(req.Context)
52+
store, err := s.initializeCredentialStore(r.Context(), req.Context)
4453
if err != nil {
4554
writeError(logger, w, http.StatusInternalServerError, err)
4655
return
@@ -81,7 +90,7 @@ func (s *server) createCredential(w http.ResponseWriter, r *http.Request) {
8190
cred.Context = credentials.DefaultCredentialContext
8291
}
8392

84-
store, err := s.initializeCredentialStore(cred.Context)
93+
store, err := s.initializeCredentialStore(r.Context(), cred.Context)
8594
if err != nil {
8695
writeError(logger, w, http.StatusInternalServerError, err)
8796
return
@@ -115,7 +124,7 @@ func (s *server) revealCredential(w http.ResponseWriter, r *http.Request) {
115124
req.Context = credentials.DefaultCredentialContext
116125
}
117126

118-
store, err := s.initializeCredentialStore(req.Context)
127+
store, err := s.initializeCredentialStore(r.Context(), req.Context)
119128
if err != nil {
120129
writeError(logger, w, http.StatusInternalServerError, err)
121130
return
@@ -152,7 +161,7 @@ func (s *server) deleteCredential(w http.ResponseWriter, r *http.Request) {
152161
req.Context = credentials.DefaultCredentialContext
153162
}
154163

155-
store, err := s.initializeCredentialStore(req.Context)
164+
store, err := s.initializeCredentialStore(r.Context(), req.Context)
156165
if err != nil {
157166
writeError(logger, w, http.StatusInternalServerError, err)
158167
return

0 commit comments

Comments
 (0)