This is the official strongDM SDK for the Go programming language.
Learn more with our 📚strongDM API docs or 📓browse the SDK reference.
$ go get github.com/strongdm/strongdm-sdk-go/v11
strongDM uses semantic versioning. We do not guarantee compatibility between major versions. Be sure to use version constraints to pin your dependency to the desired major version of the strongDM SDK.
If you don't already have them you will need to generate a set of API keys, instructions are here: API Credentials
Add the keys as environment variables; the SDK will need to access these keys for every request.
$ export SDM_API_ACCESS_KEY=<YOUR ACCESS KEY>
$ export SDM_API_SECRET_KEY=<YOUR SECRET KEY>
The following code lists all registered users:
func main() {
log.SetFlags(0)
accessKey := os.Getenv("SDM_API_ACCESS_KEY")
secretKey := os.Getenv("SDM_API_SECRET_KEY")
if accessKey == "" || secretKey == "" {
log.Fatal("SDM_API_ACCESS_KEY and SDM_API_SECRET_KEY must be provided")
}
client, err := sdm.New(accessKey, secretKey)
if err != nil {
log.Fatal("failed to create strongDM client:", err)
}
ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second)
defer cancel()
users, err := client.Accounts().List(ctx, "")
if err != nil {
log.Fatal("failed to query accounts:", err)
}
for users.Next() {
user := users.Value()
fmt.Println(user)
}
if err := users.Err(); err != nil {
log.Fatal("error while iterating users:", err)
}
}
- Documentation: sdm package · pkg.go.dev
- Migrating from Role Grants to Access Rules
- Examples: GitHub - strongdm/strongdm-sdk-go-examples
Currently, we are not accepting pull requests directly to this repository, but our users are some of the most resourceful and ambitious folks out there. So, if you have something to contribute, find a bug, or just want to give us some feedback, please email support@strongdm.com.