No description
  • Go 98%
  • Nix 1.2%
  • Makefile 0.5%
  • Smarty 0.3%
Find a file
subhro-acharjee-1 d16fadc547
Merge pull request #117 from hashicorp/subhro/temp-fix-for-test-ci
adding temp fix for the failing ci
2026-03-24 16:53:22 +05:30
.github adding temp fix for the failing ci 2026-03-24 16:25:56 +05:30
encoding [COMPLIANCE] Update Copyright and License Headers 2025-12-09 11:18:33 +00:00
framework [COMPLIANCE] Update Copyright and License Headers 2025-12-09 11:18:33 +00:00
META.d [COMPLIANCE] Update Copyright and License Headers 2025-12-09 11:18:33 +00:00
nix Bump go to 1.23 (#89) 2024-10-17 11:21:44 +10:00
proto [COMPLIANCE] Update Copyright and License Headers 2025-12-09 11:18:33 +00:00
rpc [COMPLIANCE] Update Copyright and License Headers 2025-12-09 11:18:33 +00:00
testing [COMPLIANCE] Update Copyright and License Headers 2025-12-09 11:18:33 +00:00
.copywrite.hcl [COMPLIANCE] Update Copyright and License Headers 2025-12-09 11:18:33 +00:00
.envrc Bump action versions, add devbox (#107) 2025-07-24 08:58:51 +10:00
.gitignore Add MarshalJSON for sdk.Null, ensuring conversion the same as Go nil (#86) 2024-10-08 16:05:49 +10:00
.go-version Bump go to 1.23 (#89) 2024-10-17 11:21:44 +10:00
CODEOWNERS Update codeowners (#56) 2022-11-17 09:45:24 +10:00
devbox.json Bump action versions, add devbox (#107) 2025-07-24 08:58:51 +10:00
devbox.lock Bump action versions, add devbox (#107) 2025-07-24 08:58:51 +10:00
flake.lock Bump go to 1.23 (#89) 2024-10-17 11:21:44 +10:00
flake.nix Bump go to 1.23 (#89) 2024-10-17 11:21:44 +10:00
go.mod build(deps): bump google.golang.org/grpc from 1.59.0 to 1.79.3 2026-03-18 23:39:58 +00:00
go.sum build(deps): bump google.golang.org/grpc from 1.59.0 to 1.79.3 2026-03-18 23:39:58 +00:00
LICENSE [COMPLIANCE] Update Copyright and License Headers 2025-12-09 11:18:33 +00:00
Makefile Bump to 0.19 (#58) 2022-12-07 10:27:47 +10:00
mock_Plugin.go Rename all references of import to be plugin (#55) 2022-10-25 13:23:28 +10:00
mock_Plugin_Closer.go [COMPLIANCE] Update Copyright and License Headers 2025-12-09 11:18:33 +00:00
mock_Plugin_Closer.go.src Rename all references of import to be plugin (#55) 2022-10-25 13:23:28 +10:00
plugin.go [COMPLIANCE] Update Copyright and License Headers 2025-12-09 11:18:33 +00:00
plugin_test.go [COMPLIANCE] Update Copyright and License Headers 2025-12-09 11:18:33 +00:00
README.md TF-6917 Add heimdall metadata (#63) 2023-06-05 18:23:46 +10:00
shell.nix Bump go to 1.23 (#89) 2024-10-17 11:21:44 +10:00

Sentinel Plugin SDK

Tests GoDoc Heimdall

This repository contains the Sentinel plugin SDK. This SDK allows developers to extend Sentinel to source external information for use in their policies.

Sentinel plugins can be written in any language, but the recommended language is Go. We provide a high-level framework to make writing plugins in Go extremely easy. For other languages, plugins can be written by implementing the protocol over gRPC.

To get started writing a Sentinel plugin, we recommend reading the extending Sentinel guide.

You can also view the plugin API via GoDoc.

SDK Compatibility Matrix

Sentinel's plugin protocol is, at this time, not backwards compatible. This means that a specific version of the Sentinel runtime is always coupled to a specific version of the plugin protocol, and SDK. The following table can help you determine which version of the SDK is necessary to work with which versions of Sentinel.

Sentinel Version Plugin Protocol Version SDK Version
Up to v0.10.4 1 Up to v0.1.1
Up to v0.18.13 2 Up to v0.3.13
From v0.19.0 3 Since v0.4.0

Development Info

The following tools are required to work with the Sentinel SDK:

After both of these are installed, you can use the following make commands:

  • make test will run tests on the SDK. You can use the TEST and TESTARGS variables to control the packages and test arguments, respectively.
  • make tools will install any necessary Go tools.
  • make generate will generate any auto-generated code. Currently this includes the protocol, mockery files, and the code for the plugin testing toolkit.

The modules, test-circle, and /usr/bin/sentinel targets are only used in Circle and are not necessary for interactive development.

Help and Discussion

For issues specific to the SDK, please use the GitHub issue tracker (the Issues tab).

For general Sentinel support and discussion, please use the Sentinel Community Forum.