Stage 1: API — correct editable shape + program/deployment links
The config editor read service/job detail 'manifest' as the castle.yaml spec but the endpoint returned the flat *runtime registry* shape for deployed entries — so service fields (port/health/proxy) never prefilled and a save would 422/corrupt. Detail 'manifest' is now always the editable castle.yaml ServiceSpec/JobSpec when the entry is declared there; the flat registry shape is a display-only fallback for entries that exist only at runtime. Also: - ServiceSummary/JobSummary gain run_target (what it runs) + program ref; ServiceSummary gains proxy_host. - ProgramSummary gains services[]/jobs[] — the deployments referencing a program (a program → 0-N services/jobs), for linking + create prefill. - App types updated to match; deleted orphaned DeploymentEditor/AddDeployment (leftovers from the removed ConfigEditor). Verified live: service manifest nested (expose.http.internal.port, proxy.caddy .host prefill), run_target=lakehoused, program lakehouse → services:[lakehouse]. api 52 green; ruff + app build clean.
This commit is contained in:
@@ -124,7 +124,9 @@ class TestServiceDetail:
|
||||
data = response.json()
|
||||
assert data["id"] == "test-svc"
|
||||
assert "manifest" in data
|
||||
assert data["manifest"]["runner"] == "python"
|
||||
# manifest is the editable castle.yaml ServiceSpec (nested run spec)
|
||||
assert data["manifest"]["run"]["runner"] == "python"
|
||||
assert data["run_target"] == "test-svc"
|
||||
|
||||
def test_not_found(self, client: TestClient) -> None:
|
||||
"""Returns 404 for unknown service."""
|
||||
|
||||
Reference in New Issue
Block a user