Add filter-based topology bulk writes and refine API key scopes UX.

Filter add/layout/remove keeps MCP payloads small; tokens default MCP scopes and edit them in a modal with a compact help tip.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
oliver 2026-08-04 07:39:14 +08:00
parent bf0dfd66d8
commit 2d92dde8e5
18 changed files with 1294 additions and 257 deletions

View file

@ -38,6 +38,7 @@ from .topology_schemas import (
TopologyViewUpdate,
ViewEdgeStylePatch,
ViewNodesAdd,
ViewNodesRemove,
ViewPopulateRequest,
ViewPositionsPatch,
)
@ -303,11 +304,10 @@ def api_populate_view(
@router.post("/views/{view_id}/nodes/remove")
def api_remove_nodes(
view_id: str,
body: dict[str, Any],
body: ViewNodesRemove,
db: Session = Depends(get_db),
) -> dict[str, Any]:
ids = body.get("fabric_node_ids") if isinstance(body, dict) else None
return remove_view_nodes(db, view_id, list(ids or [])).model_dump()
return remove_view_nodes(db, view_id, body=body).model_dump()
@router.patch("/views/{view_id}/edge-style")