This repository is the interface definitions of the APIs of Instill Core, Instill Model, and Instill VDP that support both REST and gRPC protocols. You can also use these definitions with open source tools to generate client libraries, documentation, and other artifacts.
The APIs use Protocol Buffers version 3 (proto3) as the Interface Definition Language (IDL) to define the API interface and the structure of the payload messages. The same interface definition is used for both RESTful (via gRPC-Gateway) and RPC versions of the API, which can be accessed over different wire protocols:
- JSON over HTTP
- Protocol Buffers over gRPC
- PR sent to the
main
branch will automatically generate, lint and commit the OpenAPI definitions for the gRPC methods exposed over HTTP. This is done with thebuf generate
andredocly lint
commands. - PR sent to the
main
branch will triggerbuf-check
job, in which the changes in proto files will be validated viabuf lint
andbuf breaking
commands. - Push to the
main
branch will triggerpush-buf
andgen-buf-protogen-*
jobs, in whichpush-buf
will push the buf module to the BSR repository andgen-buf-protogen-*
will push the auto-gen codes to the correspondingprotogen-*
repository. - Release in
main
branch will triggerrelease-protogen-*
job, in which a specific release commit will be pushed to eachprotogen-*
repository. This release process makes sure that all auto-gen code repositories will have the same release version asprotobufs
.