Files
grafana/pkg/tests/apis/openapi_snapshots
Mariell Hoversholm dfaa12b800 Provisioning: Sync API with current feature branch (#100252)
* Provisioning: Jobs: Define repository name field

* Provisioning: Jobs: Separate options per job type

* Provisioning: Define a sanitised settings resource

* Provisioning: Jobs: Define a job summary

* Provisioning: Remove linting

* Provisioning: Update docs for a few fields

* Provisioning: Remove HelloWorld

* Provisioning: Replace Repository with Message in job info

* Provisioning: Remove YAML support

* Provisioning: Remove custom folder specification

* Provisioning: Support read-only repositories

* Provisioning: Remove edit options

* Provisioning: Add sync options for repositories

* Provisioning: Add resource statistics

* Provisioning: Make slices atomic lists

* Provisioning: Message list needs to exist even if empty

If we don't do this, we can't clear the messages field, leading to buggy UX.

* Provisioning: Support incremental syncing

* Provisioning: Remove the 'items' subresource workaround

* Provisioning: Add resource list

* Provisioning: Reformat

* Provisioning: Declare new types

* OpenAPI: Generate openapi JSON spec from generated code

* Codegen: Generate OpenAPI spec

* Provisioning: Support generating frontend API

* Codegen: Generate Go code

* Provisioning: Define the base API

* Codegen: Generate frontend endpoints for provisioning

* Refactor: yarn prettier:write

* Provisioning: Tiger team takes ownership

* Chore: Remove dir we haven't added yet

* Provisioning: Remove frontend

* Test: Update example repositories
2025-02-07 15:35:55 +01:00
..

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:

  1. If generating or updating an RTK client for the first time, update scripts/generate-rtk-apis.js so schemaFile points to the processed spec files, for example:

    '../public/app/features/dashboards/api/endpoints.gen.ts': {
      schemaFile: '../data/openapi/dashboard.grafana.app-v0alpha1.json',
    },
    
  2. Generate or update the OpenAPI spec files by running:

    go test pkg/tests/apis/openapi_test.go
    

    If generating an RTK client for a new API, also add a new group/version of the API to the groups slice. If the API is behind a feature toggle, add the toggle to EnableFeatureToggles in pkg/tests/apis/openapi_test.go.

  3. Run:

    yarn generate-apis
    

    This command generates (or updates) the spec files in the data/openapi directory 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