graphql-engine/scripts/make/metadata-api.mk
Jesse Hallett 885681da9a server: commit Metadata OpenAPI spec with CI check, add Typescript client scaffolding
## Description

Adds `metadata.openapi.json` to version control. Adds a Buildkite job that verifies the spec is up-to-date on server changes, and fails the CI pipeline if not.

Adds scaffolding for a new Typescript project that consumes that OpenAPI spec, and produces Typescript types. This is adapted from the similar existing data connectors project in `dc-agents/dc-api-types/`. Generated code is *not* committed to version control. Instead there is a script to generate code on-demand at publishing time. There are plans to incorporate publishing the generated project to NPM using a forthcoming pipeline that the Console team is working on.

For the moment the Typescript project is under `metadata-api-types/typescript/`. The plan is to move the project in a future PR to the frontend sub-monorepo.

PR-URL: https://github.com/hasura/graphql-engine-mono/pull/7525
GitOrigin-RevId: dc27a807e52af117636f3aa6c2c289a0be87ade1
2023-02-15 18:38:38 +00:00

8 lines
337 B
Makefile

METADATA_OPENAPI_JSON := metadata.openapi.json
.PHONY: generate-metadata-openapi
## generate-schema: Generate an OpenAPI schema file in JSON format based on server code
generate-metadata-openapi:
# --verbose=0 avoids an "Up to date" line at the top of the file
cabal run --verbose=0 emit-metadata-openapi > "${METADATA_OPENAPI_JSON}"