Enterprise installs plugins into a workspace by talking to the plugin daemon directly, so Dify never learns that a tenant's cached model provider list is stale and serves it for the full 24h TTL. Expose the existing PluginService.invalidate_plugin_model_providers_cache over the inner API so enterprise can drop the cache for the tenants it just changed. Batching is left to the caller.
46 lines
1.2 KiB
Python
46 lines
1.2 KiB
Python
from flask import Blueprint
|
|
from flask_restx import Namespace
|
|
|
|
from libs.external_api import ExternalApi
|
|
|
|
bp = Blueprint("inner_api", __name__, url_prefix="/inner/api")
|
|
|
|
api = ExternalApi(
|
|
bp,
|
|
version="1.0",
|
|
title="Inner API",
|
|
description="Internal APIs for enterprise features, billing, knowledge retrieval, and plugin communication",
|
|
)
|
|
|
|
# Create namespace
|
|
inner_api_ns = Namespace("inner_api", description="Internal API operations", path="/")
|
|
|
|
from . import mail as _mail
|
|
from . import runtime_credentials as _runtime_credentials
|
|
from .agent import tools as _agent_tools
|
|
from .app import dsl as _app_dsl
|
|
from .knowledge import retrieval as _knowledge_retrieval
|
|
from .plugin import agent_config as _agent_config
|
|
from .plugin import agent_drive as _agent_drive
|
|
from .plugin import plugin as _plugin
|
|
from .workspace import plugin_model_providers as _plugin_model_providers
|
|
from .workspace import workspace as _workspace
|
|
|
|
api.add_namespace(inner_api_ns)
|
|
|
|
__all__ = [
|
|
"_agent_config",
|
|
"_agent_drive",
|
|
"_agent_tools",
|
|
"_app_dsl",
|
|
"_knowledge_retrieval",
|
|
"_mail",
|
|
"_plugin",
|
|
"_plugin_model_providers",
|
|
"_runtime_credentials",
|
|
"_workspace",
|
|
"api",
|
|
"bp",
|
|
"inner_api_ns",
|
|
]
|