Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
dify
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ai-tech
dify
Commits
70f16e1a
Unverified
Commit
70f16e1a
authored
Jan 30, 2024
by
Yeuoly
Committed by
GitHub
Jan 30, 2024
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: keep original tool credentials (#2288)
parent
cb27571e
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
15 additions
and
7 deletions
+15
-7
tools_manage_service.py
api/services/tools_manage_service.py
+15
-7
No files found.
api/services/tools_manage_service.py
View file @
70f16e1a
...
@@ -313,25 +313,33 @@ class ToolManageService:
...
@@ -313,25 +313,33 @@ class ToolManageService:
"""
"""
update builtin tool provider
update builtin tool provider
"""
"""
# get if the provider exists
provider
:
BuiltinToolProvider
=
db
.
session
.
query
(
BuiltinToolProvider
)
.
filter
(
BuiltinToolProvider
.
tenant_id
==
tenant_id
,
BuiltinToolProvider
.
provider
==
provider_name
,
)
.
first
()
try
:
try
:
# get provider
# get provider
provider_controller
=
ToolManager
.
get_builtin_provider
(
provider_name
)
provider_controller
=
ToolManager
.
get_builtin_provider
(
provider_name
)
if
not
provider_controller
.
need_credentials
:
if
not
provider_controller
.
need_credentials
:
raise
ValueError
(
f
'provider {provider_name} does not need credentials'
)
raise
ValueError
(
f
'provider {provider_name} does not need credentials'
)
tool_configuration
=
ToolConfiguration
(
tenant_id
=
tenant_id
,
provider_controller
=
provider_controller
)
# get original credentials if exists
if
provider
is
not
None
:
original_credentials
=
tool_configuration
.
decrypt_tool_credentials
(
provider
.
credentials
)
masked_credentials
=
tool_configuration
.
mask_tool_credentials
(
original_credentials
)
# check if the credential has changed, save the original credential
for
name
,
value
in
credentials
.
items
():
if
name
in
masked_credentials
and
value
==
masked_credentials
[
name
]:
credentials
[
name
]
=
original_credentials
[
name
]
# validate credentials
# validate credentials
provider_controller
.
validate_credentials
(
credentials
)
provider_controller
.
validate_credentials
(
credentials
)
# encrypt credentials
# encrypt credentials
tool_configuration
=
ToolConfiguration
(
tenant_id
=
tenant_id
,
provider_controller
=
provider_controller
)
credentials
=
tool_configuration
.
encrypt_tool_credentials
(
credentials
)
credentials
=
tool_configuration
.
encrypt_tool_credentials
(
credentials
)
except
(
ToolProviderNotFoundError
,
ToolNotFoundError
,
ToolProviderCredentialValidationError
)
as
e
:
except
(
ToolProviderNotFoundError
,
ToolNotFoundError
,
ToolProviderCredentialValidationError
)
as
e
:
raise
ValueError
(
str
(
e
))
raise
ValueError
(
str
(
e
))
# get if the provider exists
provider
:
BuiltinToolProvider
=
db
.
session
.
query
(
BuiltinToolProvider
)
.
filter
(
BuiltinToolProvider
.
tenant_id
==
tenant_id
,
BuiltinToolProvider
.
provider
==
provider_name
,
)
.
first
()
if
provider
is
None
:
if
provider
is
None
:
# create provider
# create provider
provider
=
BuiltinToolProvider
(
provider
=
BuiltinToolProvider
(
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment