* Generate Dashboard kinds with `grafana-app-sdk` Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com> * Hack together a fix for invalid TS codegen for v0 & v1 Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com> * Address Go linter issues Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com> * Address TS linter issues Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com> * Add new app to CODEOWNERS Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com> * Fix a couple of issues detected by tests Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com> * Update OpenAPI definitions and test files Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com> * Remove title from Dashboard v1alpha1 spec Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com> * Remove unused CUE schemas Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com> * remove unrelated files * allow any in the generated betterer * Add a comment explaining why we don't use deepcopy-gen Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com> * Default to v2alpha1 if dashboards v2 FF is enabled Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com> --------- Signed-off-by: Igor Suleymanov <igor.suleymanov@grafana.com> Co-authored-by: Ryan McKinley <ryantxu@gmail.com>
This folder contains a rendered OpenAPI file for each group/version. The “real” OpenAPI is generated by the running server, but the files here are used to build static frontend clients.
Generating RTK API Clients
The RTK API clients are generated from processed OpenAPI files using the scripts/process-specs.ts script. The source files are in pkg/tests/apis/openapi_snapshots, and the processed files are stored in the data/openapi directory. Spec processing happens as part of yarn generate-apis task, but can also be triggered separately (see below).
To generate or update the RTK API clients:
-
If generating or updating an RTK client for the first time, update
scripts/generate-rtk-apis.jssoschemaFilepoints to the processed spec files, for example:'../public/app/features/dashboards/api/endpoints.gen.ts': { schemaFile: '../data/openapi/dashboard.grafana.app-v0alpha1.json', }, -
Generate or update the OpenAPI spec files by running:
go test pkg/tests/apis/openapi_test.goIf generating an RTK client for a new API, also add a new group/version of the API to the
groupsslice. If the API is behind a feature toggle, add the toggle toEnableFeatureTogglesinpkg/tests/apis/openapi_test.go. -
Run:
yarn generate-apisThis command generates (or updates) the spec files in the
data/openapidirectory and generates the RTK API clients.
If you want to process the OpenAPI files without generating the RTK API clients (for example, if you have a separate generate-rtk-apis file), run:
yarn process-specs