mirror of
https://github.com/langgenius/dify.git
synced 2026-05-12 15:58:19 +08:00
45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
from __future__ import annotations
|
|
|
|
import logging
|
|
from dataclasses import dataclass
|
|
|
|
from werkzeug.exceptions import ServiceUnavailable
|
|
|
|
from services.enterprise.enterprise_service import EnterpriseService
|
|
from services.errors.enterprise import EnterpriseAPIError
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
@dataclass(frozen=True, slots=True)
|
|
class PermittedAppsPage:
|
|
app_ids: list[str]
|
|
total: int
|
|
has_more: bool
|
|
|
|
|
|
def list_permitted_apps(
|
|
*,
|
|
page: int,
|
|
limit: int,
|
|
mode: str | None = None,
|
|
name: str | None = None,
|
|
) -> PermittedAppsPage:
|
|
try:
|
|
body = EnterpriseService.WebAppAuth.list_externally_accessible_apps(
|
|
page=page, limit=limit, mode=mode, name=name
|
|
)
|
|
except EnterpriseAPIError as exc:
|
|
logger.warning(
|
|
"permitted_apps EE call failed: status=%s message=%s",
|
|
getattr(exc, "status_code", None),
|
|
str(exc),
|
|
)
|
|
raise ServiceUnavailable("permitted_apps_unavailable") from exc
|
|
|
|
return PermittedAppsPage(
|
|
app_ids=[row["appId"] for row in body.get("data", [])],
|
|
total=int(body.get("total", 0)),
|
|
has_more=bool(body.get("hasMore", False)),
|
|
)
|