mirror of
https://github.com/langgenius/dify.git
synced 2024-11-16 11:42:29 +08:00
Merge branch 'fix/chore-fix' into dev/plugin-deploy
Some checks are pending
Build and Push API & Web / build (api, DIFY_API_IMAGE_NAME, linux/amd64, build-api-amd64) (push) Waiting to run
Build and Push API & Web / build (api, DIFY_API_IMAGE_NAME, linux/arm64, build-api-arm64) (push) Waiting to run
Build and Push API & Web / build (web, DIFY_WEB_IMAGE_NAME, linux/amd64, build-web-amd64) (push) Waiting to run
Build and Push API & Web / build (web, DIFY_WEB_IMAGE_NAME, linux/arm64, build-web-arm64) (push) Waiting to run
Build and Push API & Web / create-manifest (api, DIFY_API_IMAGE_NAME, merge-api-images) (push) Blocked by required conditions
Build and Push API & Web / create-manifest (web, DIFY_WEB_IMAGE_NAME, merge-web-images) (push) Blocked by required conditions
Some checks are pending
Build and Push API & Web / build (api, DIFY_API_IMAGE_NAME, linux/amd64, build-api-amd64) (push) Waiting to run
Build and Push API & Web / build (api, DIFY_API_IMAGE_NAME, linux/arm64, build-api-arm64) (push) Waiting to run
Build and Push API & Web / build (web, DIFY_WEB_IMAGE_NAME, linux/amd64, build-web-amd64) (push) Waiting to run
Build and Push API & Web / build (web, DIFY_WEB_IMAGE_NAME, linux/arm64, build-web-arm64) (push) Waiting to run
Build and Push API & Web / create-manifest (api, DIFY_API_IMAGE_NAME, merge-api-images) (push) Blocked by required conditions
Build and Push API & Web / create-manifest (web, DIFY_WEB_IMAGE_NAME, merge-web-images) (push) Blocked by required conditions
This commit is contained in:
commit
1812af6cfe
|
@ -41,6 +41,21 @@ class PluginListApi(Resource):
|
||||||
return jsonable_encoder({"plugins": plugins})
|
return jsonable_encoder({"plugins": plugins})
|
||||||
|
|
||||||
|
|
||||||
|
class PluginListInstallationsFromIdsApi(Resource):
|
||||||
|
@setup_required
|
||||||
|
@login_required
|
||||||
|
@account_initialization_required
|
||||||
|
def post(self):
|
||||||
|
tenant_id = current_user.current_tenant_id
|
||||||
|
|
||||||
|
parser = reqparse.RequestParser()
|
||||||
|
parser.add_argument("plugin_ids", type=list, required=True, location="json")
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
plugins = PluginService.list_installations_from_ids(tenant_id, args["plugin_ids"])
|
||||||
|
return jsonable_encoder({"plugins": plugins})
|
||||||
|
|
||||||
|
|
||||||
class PluginIconApi(Resource):
|
class PluginIconApi(Resource):
|
||||||
@setup_required
|
@setup_required
|
||||||
def get(self):
|
def get(self):
|
||||||
|
@ -363,6 +378,7 @@ class PluginFetchPermissionApi(Resource):
|
||||||
|
|
||||||
api.add_resource(PluginDebuggingKeyApi, "/workspaces/current/plugin/debugging-key")
|
api.add_resource(PluginDebuggingKeyApi, "/workspaces/current/plugin/debugging-key")
|
||||||
api.add_resource(PluginListApi, "/workspaces/current/plugin/list")
|
api.add_resource(PluginListApi, "/workspaces/current/plugin/list")
|
||||||
|
api.add_resource(PluginListInstallationsFromIdsApi, "/workspaces/current/plugin/list/installations/ids")
|
||||||
api.add_resource(PluginIconApi, "/workspaces/current/plugin/icon")
|
api.add_resource(PluginIconApi, "/workspaces/current/plugin/icon")
|
||||||
api.add_resource(PluginUploadFromPkgApi, "/workspaces/current/plugin/upload/pkg")
|
api.add_resource(PluginUploadFromPkgApi, "/workspaces/current/plugin/upload/pkg")
|
||||||
api.add_resource(PluginUploadFromGithubApi, "/workspaces/current/plugin/upload/github")
|
api.add_resource(PluginUploadFromGithubApi, "/workspaces/current/plugin/upload/github")
|
||||||
|
|
|
@ -105,11 +105,13 @@ class PluginInstallation(BasePluginEntity):
|
||||||
meta: Mapping[str, Any]
|
meta: Mapping[str, Any]
|
||||||
plugin_id: str
|
plugin_id: str
|
||||||
plugin_unique_identifier: str
|
plugin_unique_identifier: str
|
||||||
|
version: str
|
||||||
|
checksum: str
|
||||||
|
declaration: PluginDeclaration
|
||||||
|
|
||||||
|
|
||||||
class PluginEntity(PluginInstallation):
|
class PluginEntity(PluginInstallation):
|
||||||
name: str
|
name: str
|
||||||
declaration: PluginDeclaration
|
|
||||||
installation_id: str
|
installation_id: str
|
||||||
version: str
|
version: str
|
||||||
latest_version: Optional[str] = None
|
latest_version: Optional[str] = None
|
||||||
|
|
|
@ -151,7 +151,9 @@ class PluginInstallationManager(BasePluginManager):
|
||||||
params={"plugin_unique_identifier": plugin_unique_identifier},
|
params={"plugin_unique_identifier": plugin_unique_identifier},
|
||||||
).declaration
|
).declaration
|
||||||
|
|
||||||
def fetch_plugin_installation_by_ids(self, tenant_id: str, plugin_ids: Sequence[str]) -> list[PluginInstallation]:
|
def fetch_plugin_installation_by_ids(
|
||||||
|
self, tenant_id: str, plugin_ids: Sequence[str]
|
||||||
|
) -> Sequence[PluginInstallation]:
|
||||||
"""
|
"""
|
||||||
Fetch plugin installations by ids.
|
Fetch plugin installations by ids.
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -7,7 +7,7 @@ from core.helper import marketplace
|
||||||
from core.helper.download import download_with_size_limit
|
from core.helper.download import download_with_size_limit
|
||||||
from core.helper.marketplace import download_plugin_pkg
|
from core.helper.marketplace import download_plugin_pkg
|
||||||
from core.plugin.entities.bundle import PluginBundleDependency
|
from core.plugin.entities.bundle import PluginBundleDependency
|
||||||
from core.plugin.entities.plugin import PluginDeclaration, PluginEntity, PluginInstallationSource
|
from core.plugin.entities.plugin import PluginDeclaration, PluginEntity, PluginInstallation, PluginInstallationSource
|
||||||
from core.plugin.entities.plugin_daemon import PluginInstallTask, PluginUploadResponse
|
from core.plugin.entities.plugin_daemon import PluginInstallTask, PluginUploadResponse
|
||||||
from core.plugin.manager.asset import PluginAssetManager
|
from core.plugin.manager.asset import PluginAssetManager
|
||||||
from core.plugin.manager.debugging import PluginDebuggingManager
|
from core.plugin.manager.debugging import PluginDebuggingManager
|
||||||
|
@ -50,6 +50,14 @@ class PluginService:
|
||||||
|
|
||||||
return plugins
|
return plugins
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def list_installations_from_ids(tenant_id: str, ids: Sequence[str]) -> Sequence[PluginInstallation]:
|
||||||
|
"""
|
||||||
|
List plugin installations from ids
|
||||||
|
"""
|
||||||
|
manager = PluginInstallationManager()
|
||||||
|
return manager.fetch_plugin_installation_by_ids(tenant_id, ids)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_asset(tenant_id: str, asset_file: str) -> tuple[bytes, str]:
|
def get_asset(tenant_id: str, asset_file: str) -> tuple[bytes, str]:
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue
Block a user