buf.plugin.yaml
A `buf.plugin.yaml` file captures metadata about the plugin. It includes mandatory and optional fields that are displayed on the individual plugin page and the BSR plugin. Documentation: https://buf.build/plugins
buf.plugin.yaml
Validate
Check your file against this schema
Opens the validator with this schema already loaded. Paste your
buf.plugin.yaml and it validates in your browser — nothing is uploaded.
Reference
Fields
Generated directly from the schema, following local
$refs, to two levels of nesting.
| Field | Type | Description |
|---|---|---|
versionrequired | string | The YAML configuration version, must be `v1`. |
namerequired | string | The plugin identity with format `{remote}/{organization_name}/{plugin_name}`. |
plugin_versionrequired | string | The plugin version with format `v{semver}`, the `v` prefix is required and the version must be valid [semantic versioning](https://semver.org/). |
license_url | string | URL to the license of the plugin source code. |
source_url | string | URL to the source code of the Protobuf plugin. |
description | string | Description of the plugin. |
output_languages | array<string> | The output language types generated by the plugin. See the PluginLanguage enum for existing languages. Open a GitHub issue in the Buf CLI (https://github.com/bufbuild/buf) if the output language isn't found for a plugin. |
spdx_license_id | string | The license id for the plugin from https://spdx.org/licenses. |
integration_guide_url | string | The URL to the integration guide for the plugin. |
deps | array<object> | A list of dependencies on other plugins used by Generated SDKs. |
registry | object | Configuration to enable a plugin for use with Generated SDKs. |
registry.opts | array<string> | Options supplied to the plugin when generating code for the SDK. |
registry.go | object | Generated SDK configuration for a Go plugin. |
registry.go.min_version | string | The minimum Go version required by the plugin (e.g. `1.19`), used as the go directive in the `go.mod` file. See https://go.dev/ref/mod#go-mod-file-go. |
registry.go.deps | array<object> | A list of Go module requirements. Each requirement corresponds to a require directive in the `go.mod` file. See https://go.dev/ref/mod#go-mod-file-require. |
registry.npm | object | Generated SDK configuration for a JavaScript/TypeScript plugin. |
registry.npm.rewrite_import_path_suffix | string | The suffix used in the generated files and their imported dependencies (supported by @bufbuild/protoplugin (https://www.npmjs.com/package/@bufbuild/protoplugin) plugins). |
registry.npm.deps | array<object> | NPM package dependencies for the Generated SDK. |
registry.npm.import_stylerequired | string | One of either `module` or `commonjs`. one of: "module", "commonjs" |
registry.maven | object | Generated SDK configuration for a Java/Kotlin plugin. |
registry.maven.compiler | object | — |
registry.maven.deps | array<string> | Runtime dependencies of the generated Java/Kotlin code (in GAV format). |
registry.maven.additional_runtimes | array<object> | Configures additional supported runtimes. |
registry.python | object | Generated SDK configuration for a Python plugin. |
registry.python.deps | array<string> | Runtime dependencies of the generated code. |
registry.python.requires_python | string | Specifies the `Requires-Python` of the generated package. |
registry.python.package_typerequired | string | One of `runtime` or `stub-only`. one of: "runtime", "stub-only" |
registry.swift | object | Generated SDK configuration for a Swift plugin. |
registry.swift.deps | array<object> | Dependencies of the generated code. |
registry.cargo | object | Generated SDK configuration for a Rust plugin. |
registry.cargo.rust_version | string | The rust-version set for the generated crate. |
registry.cargo.deps | array<object> | Crates.io dependencies for the Generated SDK. |
registry.nuget | object | Generated SDK configuration for a C# plugin. |
registry.nuget.target_frameworks | array<string> | The target frameworks the generated package supports. |
registry.nuget.deps | array<object> | nuget.org dependencies for the Generated SDK. |
registry.cmake | object | Generated SDK configuration for a CMake plugin. |
Audit
What we found in this schema
- Declared draft: draft-07
- Validates cleanly against its own meta-schema.
- 72 properties, 97% carrying a description, max nesting depth 12.
Standards
Specification sections for the keywords in this schema
| Keyword | Document | Section |
|---|---|---|
$comment | JSON Schema Core, draft 2020-12 | §8.3 — Comments With "$comment" |
$id | JSON Schema Core, draft 2020-12 | §8.2.1 — The "$id" Keyword |
$schema | JSON Schema Core, draft 2020-12 | §8.1.1 — "$schema" |
additionalProperties | JSON Schema Core, draft 2020-12 | §10.3.2.3 — "additionalProperties" |
const | JSON Schema Validation, draft 2020-12 | §6.1.3 — "const" |
default | JSON Schema Validation, draft 2020-12 | §9.2 — "default" |
description | JSON Schema Validation, draft 2020-12 | §9.1 — "title" and "description" |
enum | JSON Schema Validation, draft 2020-12 | §6.1.2 — "enum" |
items | JSON Schema Core, draft 2020-12 | §10.3.1.2 — "items" |
minimum | JSON Schema Validation, draft 2020-12 | §6.2.4 — "minimum" |
properties | JSON Schema Core, draft 2020-12 | §10.3.2.1 — "properties" |
required | JSON Schema Validation, draft 2020-12 | §6.5.3 — "required" |
type | JSON Schema Validation, draft 2020-12 | §6.1.1 — "type" |
uniqueItems | JSON Schema Validation, draft 2020-12 | §6.4.3 — "uniqueItems" |
Documents
- JSON Schema Core, draft 2020-12 — JSON Schema: A Media Type for Describing JSON Documents, A. Wright, H. Andrews, B. Hutton, G. Dennis, Eds., 2022. draft-bhutton-json-schema-01. An expired Internet-Draft with no formal standing in the IETF standards process; it is nonetheless the specification of record for JSON Schema 2020-12, published by json-schema.org.
- JSON Schema Validation, draft 2020-12 — JSON Schema Validation: A Vocabulary for Structural Validation of JSON, A. Wright, H. Andrews, B. Hutton, Eds., 2022.
- RFC 8259 (STD 90) — The JavaScript Object Notation (JSON) Data Interchange Format, T. Bray, Ed., 2017. The format a schema describes.
- RFC 6901 — JavaScript Object Notation (JSON) Pointer. Defines the pointer syntax used by $ref fragments and the ~0 / ~1 escapes.
Source
Attribution
This schema comes from SchemaStore, distributed under the Apache License 2.0. Copyright 2015–present Mads Kristensen and contributors. View the original file. The field table and audit on this page are generated by JSONTools.tools; the schema itself is unmodified.