Skip to content

Commit 3a8d365

Browse files
authored
Fix: fix oauth for knowledge source (#1762)
Signed-off-by: Daishan Peng <[email protected]>
1 parent 1e2ab78 commit 3a8d365

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

pkg/controller/handlers/toolinfo/toolinfo.go

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,9 @@ import (
1212
"github.com/obot-platform/obot/pkg/render"
1313
v1 "github.com/obot-platform/obot/pkg/storage/apis/obot.obot.ai/v1"
1414
apierror "k8s.io/apimachinery/pkg/api/errors"
15+
"k8s.io/apimachinery/pkg/fields"
1516
"k8s.io/apimachinery/pkg/util/sets"
17+
kclient "sigs.k8s.io/controller-runtime/pkg/client"
1618
)
1719

1820
type Handler struct {
@@ -105,6 +107,47 @@ func (h *Handler) RemoveUnneededCredentials(req router.Request, _ router.Respons
105107
}
106108
}
107109

110+
var knowledgeSets v1.KnowledgeSetList
111+
switch req.Object.(type) {
112+
case *v1.Workflow:
113+
if err := req.List(&knowledgeSets, &kclient.ListOptions{
114+
Namespace: req.Namespace,
115+
FieldSelector: fields.SelectorFromSet(map[string]string{
116+
"spec.workflowName": req.Object.GetName(),
117+
}),
118+
}); err != nil {
119+
return err
120+
}
121+
122+
case *v1.Agent:
123+
if err := req.List(&knowledgeSets, &kclient.ListOptions{
124+
Namespace: req.Namespace,
125+
FieldSelector: fields.SelectorFromSet(map[string]string{
126+
"spec.agentName": req.Object.GetName(),
127+
}),
128+
}); err != nil {
129+
return err
130+
}
131+
}
132+
133+
for _, knowledgeSet := range knowledgeSets.Items {
134+
var knowledgeSources v1.KnowledgeSourceList
135+
if err := req.List(&knowledgeSources, &kclient.ListOptions{
136+
Namespace: req.Namespace,
137+
FieldSelector: fields.SelectorFromSet(map[string]string{
138+
"spec.knowledgeSetName": knowledgeSet.Name,
139+
}),
140+
}); err != nil {
141+
return err
142+
}
143+
144+
for _, knowledgeSource := range knowledgeSources.Items {
145+
if sourceType := string(knowledgeSource.Spec.Manifest.GetType()); sourceType != "" {
146+
credentialNames[sourceType+".sync-file"] = struct{}{}
147+
}
148+
}
149+
}
150+
108151
for _, cred := range creds {
109152
if _, ok := credentialNames[cred.ToolName]; !ok {
110153
if err := h.gptscript.DeleteCredential(req.Ctx, req.Object.GetName(), cred.ToolName); err != nil && !errors.As(err, &gptscript.ErrNotFound{}) {

0 commit comments

Comments
 (0)