This repository contains the service definitions and code generated stubs for Cofide's APIs, used for open source projects and the Cofide Connect product. Services and messages are defined using Protocol Buffers (protobuf). This repository also contains a Go client implementation for the Cofide Connect API.
For more information about the Cofide Connect Workload Identity platform, take a look at our blog post or public documentation. If you'd like to discuss how enterprise workload identity management could benefit you then let us know.
This repository uses the Buf CLI to help generate and manage Cofide's protobuf definitions and schemas. The following tools must be available in order to generate code stubs.
- Go 1.26.8 toolchain
- protobuf version 3 compiler
- Go gRPC and protobuf build tools.
- Connect RPC tools
- Buf CLI
- Just
For convenience, a set of useful commands have been added to the Justfile in the project root. Some of the key commands include:
just fmt- Formats the protobuf definitionsjust lint- Lints the protobuf definitions and Go source code in accordance with best practicesjust api-lint [pattern]- Lints the new APIs underproto/cofideagainst Google's AIPs with api-linter, configured in api-linter.yamljust proto-gen- Generates the code stubs from the protobuf definitions using the defined plugins (specified in buf.gen.yaml)just proto-docs [out=<dir>]- Generates Markdown API documentation from the protobuf definitions (defaults to./docs/), with AIP-192 internal comments left outjust test- Runs Go unit tests
The .proto files are in the proto directory, with the new APIs under proto/cofide and the old ones alongside them. The generated Go stubs are in gen/go and the TypeScript stubs in gen/ts.
The Cofide Connect API client is in the pkg/connect/client directory.
The service definitions in this repository are not currently guaranteed to be backward compatible over time, and have been versioned as v1alpha1 to indicate this.
As Cofide projects and product mature, we will move to v1 and guarantee backward compatibility from that point.