Add generic resource tools and capability-driven UI #64

Open
opened 2026-10-04 17:46:45 +00:00 by kayg · 0 comments
Owner

Problem and evidence

Product clients still encode container vocabulary: crates/infraternal/src/cli.rs:24-56 has a Docker/Podman engine filter, crates/infraternal/src/mcp.rs:677-709 exposes list_containers, and packages/web/src/lib/inventory.ts:42-82 calls only container routes and parses container addresses. This means a provider with existing shared capabilities still needs new product-specific branches.

Recommendation

After the generic resource API lands, add generic resource CLI/MCP commands and a shared web summary/detail view driven by effective capabilities. Keep static container commands as aliases. Add the test-only service kind acceptance case from the report: List and Inspect only, opaque IDs with slash/percent, no Logs/Exec controls or dispatch, embedded and mTLS routes, exact permission filters, and unchanged v1 Docker/Podman behavior.

Payoff and estimate

A provider implementing an existing capability needs registration/adapter tests rather than new branches in four product layers. Estimate: 5–10 engineering days across the generic API and client vertical slice.

Priority: Next milestone (PLAN steps 5–6, after DTOs are stable).

2026-10-04 owner decisions: Matches compiled-in providers behind one trait and the generic schema-driven UI. The design system and current bounded shared tables remain the base. Related: #49.

Report: arch-review report
Source: arch-review 2026-10-04

## Problem and evidence Product clients still encode container vocabulary: `crates/infraternal/src/cli.rs:24-56` has a Docker/Podman engine filter, `crates/infraternal/src/mcp.rs:677-709` exposes `list_containers`, and `packages/web/src/lib/inventory.ts:42-82` calls only container routes and parses container addresses. This means a provider with existing shared capabilities still needs new product-specific branches. ## Recommendation After the generic resource API lands, add generic resource CLI/MCP commands and a shared web summary/detail view driven by effective capabilities. Keep static container commands as aliases. Add the test-only `service` kind acceptance case from the report: List and Inspect only, opaque IDs with slash/percent, no Logs/Exec controls or dispatch, embedded and mTLS routes, exact permission filters, and unchanged v1 Docker/Podman behavior. ## Payoff and estimate A provider implementing an existing capability needs registration/adapter tests rather than new branches in four product layers. Estimate: 5–10 engineering days across the generic API and client vertical slice. **Priority:** Next milestone (PLAN steps 5–6, after DTOs are stable). **2026-10-04 owner decisions:** Matches compiled-in providers behind one trait and the generic schema-driven UI. The design system and current bounded shared tables remain the base. Related: #49. **Report:** [arch-review report](/mnt/hdd/infraternal/jobs/arch-review/report.md) **Source: arch-review 2026-10-04**
Commenting is not possible because the repository is archived.
No labels
No milestone
No project
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/infraternal-v0#64
No description provided.