Skip to content

Instantly share code, notes, and snippets.

@sdboyer
Last active November 9, 2022 18:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sdboyer/7b3e9a1ff194105beea7c78896433ed7 to your computer and use it in GitHub Desktop.
Save sdboyer/7b3e9a1ff194105beea7c78896433ed7 to your computer and use it in GitHub Desktop.

Personas

  • Grafana user - clickin dem boxes in dat browser
  • Plugin developer - someone writing a particular Grafana plugin, whether that plugin happens to be in core or external
  • Core developer - someone working on any subsystem in Grafana core other than the kind framework itself, frontend or backend
  • Kind framework developer - someone working on the kind framework - basically, what’s under pkg/kindsys

Things

  • Kind Category Schema - a meta-schema specifying how a particular category of kind and its contained schemas must be declared
  • Kind Schema - a declaration of a single instance of a particular kind category
  • Object - actual, concrete instances of a kind schema.
Composable Kinds Extension Kinds
Kind framework developers Two Kind Category Schemas in pkg/kindsys: #ComposableKind, and slot definitions One Kind Category Schema: an #ExtensionKind in pkg/kindsys
Core developers N/A Declare Kind Schemas in kinds/extension, a new sibling to kinds/structured and kinds/raw
Plugin developers Declare Kind Schemas, currently in models.cue Declare Objects in their plugin.json
Users Create Objects, by doing stuff in the web GUI to create a core kind that incorporates a composable kind - e.g., define a new Prometheus datasource N/A
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment