mirror of
https://github.com/langgenius/dify.git
synced 2026-05-13 08:57:28 +08:00
allow skipping runtime credential check
This commit is contained in:
parent
9853e28230
commit
a60e85a158
@ -23,6 +23,12 @@ class EnterpriseFeatureConfig(BaseSettings):
|
|||||||
ge=1, description="Maximum timeout in seconds for enterprise requests", default=5
|
ge=1, description="Maximum timeout in seconds for enterprise requests", default=5
|
||||||
)
|
)
|
||||||
|
|
||||||
|
ENTERPRISE_DISABLE_RUNTIME_CREDENTIAL_CHECK: bool = Field(
|
||||||
|
default=False,
|
||||||
|
description="When disabled, credential policy check is disabled at workflow run time."
|
||||||
|
"You can disable to gain performance by trading off consistency",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class EnterpriseTelemetryConfig(BaseSettings):
|
class EnterpriseTelemetryConfig(BaseSettings):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@ -9,6 +9,7 @@ from pydantic import BaseModel, ConfigDict, Field, model_validator
|
|||||||
from sqlalchemy import func, select
|
from sqlalchemy import func, select
|
||||||
from sqlalchemy.orm import Session
|
from sqlalchemy.orm import Session
|
||||||
|
|
||||||
|
from configs import dify_config
|
||||||
from constants import HIDDEN_VALUE
|
from constants import HIDDEN_VALUE
|
||||||
from core.entities.model_entities import ModelStatus, ModelWithProviderEntity, SimpleModelProviderEntity
|
from core.entities.model_entities import ModelStatus, ModelWithProviderEntity, SimpleModelProviderEntity
|
||||||
from core.entities.provider_entities import (
|
from core.entities.provider_entities import (
|
||||||
@ -144,9 +145,9 @@ class ProviderConfiguration(BaseModel):
|
|||||||
current_credential_id = self.custom_configuration.provider.current_credential_id
|
current_credential_id = self.custom_configuration.provider.current_credential_id
|
||||||
|
|
||||||
if current_credential_id:
|
if current_credential_id:
|
||||||
from core.helper.credential_utils import check_credential_policy_compliance
|
from core.helper.credential_utils import runtime_check_credential_policy_compliance
|
||||||
|
|
||||||
check_credential_policy_compliance(
|
runtime_check_credential_policy_compliance(
|
||||||
credential_id=current_credential_id,
|
credential_id=current_credential_id,
|
||||||
provider=self.provider.provider,
|
provider=self.provider.provider,
|
||||||
credential_type=PluginCredentialType.MODEL,
|
credential_type=PluginCredentialType.MODEL,
|
||||||
@ -155,9 +156,9 @@ class ProviderConfiguration(BaseModel):
|
|||||||
# no current credential id, check all available credentials
|
# no current credential id, check all available credentials
|
||||||
if self.custom_configuration.provider:
|
if self.custom_configuration.provider:
|
||||||
for credential_configuration in self.custom_configuration.provider.available_credentials:
|
for credential_configuration in self.custom_configuration.provider.available_credentials:
|
||||||
from core.helper.credential_utils import check_credential_policy_compliance
|
from core.helper.credential_utils import runtime_check_credential_policy_compliance
|
||||||
|
|
||||||
check_credential_policy_compliance(
|
runtime_check_credential_policy_compliance(
|
||||||
credential_id=credential_configuration.credential_id,
|
credential_id=credential_configuration.credential_id,
|
||||||
provider=self.provider.provider,
|
provider=self.provider.provider,
|
||||||
credential_type=PluginCredentialType.MODEL,
|
credential_type=PluginCredentialType.MODEL,
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
Credential utility functions for checking credential existence and policy compliance.
|
Credential utility functions for checking credential existence and policy compliance.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
from dify.api.configs import dify_config
|
||||||
from services.enterprise.plugin_manager_service import PluginCredentialType
|
from services.enterprise.plugin_manager_service import PluginCredentialType
|
||||||
|
|
||||||
|
|
||||||
@ -39,6 +40,14 @@ def is_credential_exists(credential_id: str, credential_type: "PluginCredentialT
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
|
|
||||||
|
def runtime_check_credential_policy_compliance(
|
||||||
|
*args, **kwargs
|
||||||
|
) -> None:
|
||||||
|
if dify_config.ENTERPRISE_DISABLE_RUNTIME_CREDENTIAL_CHECK:
|
||||||
|
return
|
||||||
|
check_credential_policy_compliance(*args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
def check_credential_policy_compliance(
|
def check_credential_policy_compliance(
|
||||||
credential_id: str, provider: str, credential_type: "PluginCredentialType", check_existence: bool = True
|
credential_id: str, provider: str, credential_type: "PluginCredentialType", check_existence: bool = True
|
||||||
) -> None:
|
) -> None:
|
||||||
|
|||||||
@ -433,10 +433,10 @@ class ModelInstance:
|
|||||||
|
|
||||||
# Additional policy compliance check as fallback (in case fetch_next didn't catch it)
|
# Additional policy compliance check as fallback (in case fetch_next didn't catch it)
|
||||||
try:
|
try:
|
||||||
from core.helper.credential_utils import check_credential_policy_compliance
|
from core.helper.credential_utils import runtime_check_credential_policy_compliance
|
||||||
|
|
||||||
if lb_config.credential_id:
|
if lb_config.credential_id:
|
||||||
check_credential_policy_compliance(
|
runtime_check_credential_policy_compliance(
|
||||||
credential_id=lb_config.credential_id,
|
credential_id=lb_config.credential_id,
|
||||||
provider=self.provider,
|
provider=self.provider,
|
||||||
credential_type=PluginCredentialType.MODEL,
|
credential_type=PluginCredentialType.MODEL,
|
||||||
@ -643,10 +643,10 @@ class LBModelManager:
|
|||||||
|
|
||||||
# Check policy compliance for the selected configuration
|
# Check policy compliance for the selected configuration
|
||||||
try:
|
try:
|
||||||
from core.helper.credential_utils import check_credential_policy_compliance
|
from core.helper.credential_utils import runtime_check_credential_policy_compliance
|
||||||
|
|
||||||
if config.credential_id:
|
if config.credential_id:
|
||||||
check_credential_policy_compliance(
|
runtime_check_credential_policy_compliance(
|
||||||
credential_id=config.credential_id,
|
credential_id=config.credential_id,
|
||||||
provider=self._provider,
|
provider=self._provider,
|
||||||
credential_type=PluginCredentialType.MODEL,
|
credential_type=PluginCredentialType.MODEL,
|
||||||
|
|||||||
@ -246,9 +246,9 @@ class ToolManager:
|
|||||||
raise ToolProviderNotFoundError(f"builtin provider {provider_id} not found")
|
raise ToolProviderNotFoundError(f"builtin provider {provider_id} not found")
|
||||||
|
|
||||||
# check if the credential is allowed to be used
|
# check if the credential is allowed to be used
|
||||||
from core.helper.credential_utils import check_credential_policy_compliance
|
from core.helper.credential_utils import runtime_check_credential_policy_compliance
|
||||||
|
|
||||||
check_credential_policy_compliance(
|
runtime_check_credential_policy_compliance(
|
||||||
credential_id=builtin_provider.id,
|
credential_id=builtin_provider.id,
|
||||||
provider=provider_id,
|
provider=provider_id,
|
||||||
credential_type=PluginCredentialType.TOOL,
|
credential_type=PluginCredentialType.TOOL,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user