Mark non-essential Orbit endpoints as experimental

What does this MR do and why?

Only the core Orbit endpoints (query, status, skills) are stable enough to keep as Beta. This marks the schema, tools, DSL, format, graph status and agent command endpoints as Experiment, so we can remove them later without rushing. No endpoint is removed.

References

The change is small so it can be backported to the stable branches.

Screenshots or screen recordings

Status of every public /api/v4/orbit/* route:

Route Before After
POST /orbit/query Beta Beta
POST /orbit/query/:name Beta Beta
GET /orbit/query/templates Beta Beta
GET /orbit/status Beta Beta
GET /orbit/skills Beta Beta
GET/HEAD /orbit/skills/:name Beta Beta
GET /orbit/skills/:name/*path Beta Beta
GET /orbit/schema Beta Experiment
GET /orbit/tools Beta Experiment
GET /orbit/schema/dsl none Experiment
GET /orbit/schema/format none Experiment
GET /orbit/graph_status none Experiment
GET /orbit/agent/commands none Experiment
POST /orbit/agent/commands/:name none Experiment
GET /orbit/grep Experiment Experiment
POST /orbit/context Experiment Experiment

graph_status is marked Experiment here. !264745 (merged) removes it on master later and will rebase over this change.

How to set up and validate locally

  1. Run bundle exec rspec ee/spec/requests/api/orbit/data_spec.rb (235 examples pass).

MR acceptance checklist

Evaluate this MR against the MR acceptance checklist.

Agent context
  • ee/lib/api/orbit/data.rb: route_setting :lifecycle, :experiment on schema and tools (was :beta) and added on the five unmarked routes. The graph_status line is its own hunk, easy to drop on rebase.
  • doc/api/openapi/openapi_v3.yaml: x-gitlab-lifecycle flipped to experiment for schema and tools. The other routes are hidden from the OpenAPI file. doc/api/orbit.md does not document schema or tools, so it is unchanged.
  • data_spec.rb: the published routes check now expects context, schema and tools to be experimental and the rest Beta. A new example in the same block checks every hidden route is experimental.
  • Verified on Caproni with the full data_spec.rb: 235 examples, 0 failures.
Edited by Dmitry Gruzd

Merge request reports

Loading
Loading