@@ -127,16 +127,15 @@ ci: ci-go ci-frontend
127127
128128# Regenerate the OpenAPI v1 spec from handler annotations.
129129# Pipeline: swag emits Swagger 2.0 (JSON) -> openapi-convert produces
130- # OpenAPI 3.0 yaml/json -> intermediate Swagger 2.0 file is removed.
131- # Only api/openapi.{yaml, json} is committed.
130+ # OpenAPI 3.0 JSON -> intermediate Swagger 2.0 file is removed.
131+ # Only api/openapi.json is committed.
132132openapi :
133133 @echo " Regenerating OpenAPI spec..."
134134 @$(SWAG ) init -g internal/restapi/v1/doc.go -d ./,internal/restapi --parseInternal -o $(OPENAPI_DIR ) --outputTypes json -q
135135 @go run ./scripts/openapi-convert -in $(OPENAPI_DIR ) /swagger.json \
136- -out-yaml $(OPENAPI_DIR ) /openapi.yaml \
137136 -out-json $(OPENAPI_DIR ) /openapi.json
138137 @rm -f $(OPENAPI_DIR ) /swagger.json
139- @echo " Spec written to $( OPENAPI_DIR) /openapi.{yaml, json} "
138+ @echo " Spec written to $( OPENAPI_DIR) /openapi.json"
140139
141140# Regenerate the public v2 schemas and shared responses from canonical route
142141# request, response, media-type, envelope, and success-status metadata.
@@ -145,13 +144,13 @@ openapi-v2:
145144
146145# Verify that handler annotations parse cleanly under swag and the generated
147146# spec is valid OpenAPI 3.0. Does NOT compare against the committed
148- # api/openapi.{ json,yaml} — that byte-equality check was a continuous source
147+ # api/openapi.json — that byte-equality check was a continuous source
149148# of host-environment-dependent CI noise (swag's output differed between CI
150149# and local in ways we couldn't isolate over multiple cycles).
151150#
152151# The canonical contract test is core-tests/TestAPIOpenAPIContract, which runs
153152# the actual server and validates response shapes against the spec. The
154- # committed api/openapi.{ json,yaml} is best-effort up-to-date; run
153+ # committed api/openapi.json is best-effort up-to-date; run
155154# `make openapi` locally to refresh it (e.g., before a release).
156155#
157156# This target writes to a tempdir so it doesn't touch the committed spec.
@@ -164,7 +163,6 @@ openapi-check:
164163 @tmpdir=$$(mktemp -d ) && trap " rm -rf $$ tmpdir" EXIT && \
165164 $(SWAG ) init -g internal/restapi/v1/doc.go -d ./,internal/restapi --parseInternal -o $$ tmpdir --outputTypes json -q && \
166165 go run ./scripts/openapi-convert -in $$ tmpdir/swagger.json \
167- -out-yaml $$ tmpdir/openapi.yaml \
168166 -out-json $$ tmpdir/openapi.json && \
169167 echo " OpenAPI spec generates cleanly and validates as OpenAPI 3.0."
170168 @$(MAKE ) --no-print-directory openapi-v2-check
@@ -174,6 +172,7 @@ openapi-v2-check:
174172 @go run ./scripts/openapi-v2-generate -spec api/openapi-v2.json -check
175173 @go run ./scripts/openapi-v2-check -spec api/openapi-v2.json
176174 @$(MAKE ) --no-print-directory openapi-v2-client-smoke
175+ @node scripts/check-frontend-v2-fields.mjs
177176
178177openapi-v2-client-smoke :
179178 @tmpdir=$$(mktemp -d /tmp/windshift-v2-client.XXXXXX ) && trap ' rm -rf "$$tmpdir"' EXIT && \
@@ -237,7 +236,7 @@ help:
237236 @echo " make clean - Clean build artifacts"
238237 @echo " make dev-tools - Install pinned Go tools used by CI"
239238 @echo " make hooks - Install git pre-commit hook"
240- @echo " make openapi - Regenerate api/openapi.{yaml, json} from handler annotations"
239+ @echo " make openapi - Regenerate api/openapi.json from handler annotations"
241240 @echo " make openapi-v2 - Regenerate typed v2 schemas from canonical route metadata"
242241 @echo " make openapi-v2-client-smoke - Generate and compile a pinned Go v2 client"
243242 @echo " make openapi-check - Validate v1 generation and v2 route/spec parity (used by hooks/CI)"
0 commit comments