mirror of
https://github.com/rookiestar28/ComfyUI-OpenClaw.git
synced 2026-08-14 08:52:45 +00:00
feat(connector): publish extraction seam contract
This commit is contained in:
@@ -25,6 +25,9 @@ except ImportError: # pragma: no cover
|
||||
|
||||
if __package__ and "." in __package__:
|
||||
from ..services.access_control import require_admin_token, resolve_token_info
|
||||
from ..services.connector_extraction_contract import (
|
||||
get_connector_extraction_contract,
|
||||
)
|
||||
from ..services.connector_installation_registry import (
|
||||
get_connector_installation_registry,
|
||||
)
|
||||
@@ -33,6 +36,9 @@ if __package__ and "." in __package__:
|
||||
else: # pragma: no cover
|
||||
from services.access_control import require_admin_token # type: ignore
|
||||
from services.access_control import resolve_token_info # type: ignore
|
||||
from services.connector_extraction_contract import ( # type: ignore
|
||||
get_connector_extraction_contract,
|
||||
)
|
||||
from services.connector_installation_registry import ( # type: ignore
|
||||
get_connector_installation_registry,
|
||||
)
|
||||
@@ -241,3 +247,22 @@ async def connector_installation_audit_handler(request):
|
||||
{"ok": False, "error": exc.code, "message": str(exc)},
|
||||
status=403,
|
||||
)
|
||||
|
||||
|
||||
@endpoint_metadata(
|
||||
auth=AuthTier.ADMIN,
|
||||
risk=RiskTier.LOW,
|
||||
summary="Connector extraction contract",
|
||||
description="Returns the machine-readable connector extraction feasibility contract.",
|
||||
audit="connector.extraction_contract.get",
|
||||
plane=RoutePlane.ADMIN,
|
||||
)
|
||||
async def connector_extraction_contract_handler(request):
|
||||
if (guard := _require_admin(request)) is not None:
|
||||
return guard
|
||||
return web.json_response(
|
||||
{
|
||||
"ok": True,
|
||||
"contract": get_connector_extraction_contract(),
|
||||
}
|
||||
)
|
||||
|
||||
@@ -226,6 +226,11 @@ def build_connector_installation_route_specs(
|
||||
f"{prefix}/connector/installations",
|
||||
handlers["connector_installations_list_handler"],
|
||||
),
|
||||
RouteSpec(
|
||||
"GET",
|
||||
f"{prefix}/connector/extraction-contract",
|
||||
handlers["connector_extraction_contract_handler"],
|
||||
),
|
||||
RouteSpec(
|
||||
"GET",
|
||||
f"{prefix}/connector/installations/resolve",
|
||||
|
||||
@@ -67,6 +67,7 @@ remote_admin_page_handler = None # type: ignore # F61
|
||||
security_doctor_handler = None # type: ignore # S30
|
||||
connector_installations_list_handler = connector_installation_get_handler = None # type: ignore
|
||||
connector_installation_resolve_handler = connector_installation_audit_handler = None # type: ignore
|
||||
connector_extraction_contract_handler = None # type: ignore
|
||||
templates_list_handler = None # type: ignore
|
||||
rewrite_recipes_list_handler = rewrite_recipe_get_handler = None # type: ignore
|
||||
rewrite_recipe_create_handler = rewrite_recipe_update_handler = None # type: ignore
|
||||
@@ -96,6 +97,7 @@ if web is not None:
|
||||
connector_installation_get_handler,
|
||||
connector_installation_resolve_handler,
|
||||
connector_installation_audit_handler,
|
||||
connector_extraction_contract_handler,
|
||||
) = import_attrs_dual(
|
||||
__package__,
|
||||
"..api.connector_contracts",
|
||||
@@ -105,6 +107,7 @@ if web is not None:
|
||||
"connector_installation_get_handler",
|
||||
"connector_installation_resolve_handler",
|
||||
"connector_installation_audit_handler",
|
||||
"connector_extraction_contract_handler",
|
||||
),
|
||||
)
|
||||
(
|
||||
@@ -919,6 +922,7 @@ def register_routes(server) -> None:
|
||||
if connector_installations_list_handler:
|
||||
connector_installation_handlers = {
|
||||
"connector_installations_list_handler": connector_installations_list_handler,
|
||||
"connector_extraction_contract_handler": connector_extraction_contract_handler,
|
||||
"connector_installation_resolve_handler": connector_installation_resolve_handler,
|
||||
"connector_installation_audit_handler": connector_installation_audit_handler,
|
||||
"connector_installation_get_handler": connector_installation_get_handler,
|
||||
|
||||
Reference in New Issue
Block a user