Getting started with Go SDK

2 minute read

This is Rollout-legacy documentation.

For Rollout customers: This (Rollout) documentation remains available through your end-of-service date.

CloudBees Feature Management is now part of CloudBees Unify. Refer to CloudBees Unify Feature management documentation.

This section describes how to set up and install the Go SDK and how to deploy a feature flag.

Step 1 - Setting up

To setup Go SDK, follow these steps:

  1. Create a CloudBees Feature Management account. See Signup Page to create an account.

  2. Get your environment key. Copy your environment key from App settings > Environments > Key.

Step 2 - Installing the Go SDK

Add the CloudBees Feature Management Go package to your application

To add the CloudBees Feature Management Go library to your project, run the following command:

# Add the SDK to your project $go get -u github.com/rollout/rox-go/v5/...

Add the following lines of code to your project

import ( "fmt" "github.com/rollout/rox-go/v5/server" ) // Create Roxflags in the Flags container class type Flags struct { EnableTutorial server.RoxFlag TitleColors server.RoxString Page server.RoxInt Percentage server.RoxDouble } var flags = & Flags { // Define the feature flags EnableTutorial: server.NewRoxFlag(false), TitleColors: server.NewRoxString("Green", []string{"White", "Blue", "Green", "Yellow"}), Page: server.NewRoxInt(1, []int{1, 2, 3}), Percentage: server.NewRoxDouble(99.9, []float64{10.5, 50.0, 99.9}), } var rox * server.Rox func main() { options := server.NewRoxOptions(server.RoxOptionsBuilder{DevModeKey: "<ROLLOUT_DEVMODEKEY>"}) rox := server.NewRox() // Register the flags container rox.Register("", flags) // Setup the environment key <-rox.Setup("<ROLLOUT-ENV-KEY>", options) // Boolean flag example if (flags.EnableTutorial.IsEnabled(nil)) { // TODO: Put your code here that needs to be gated } // String flag example fmt.Println("TitleColors is " + flags.TitleColors.GetValue(nil)) // Int flag example fmt.Printf("Page is %v", flags.Page.GetValue(nil)) // Double flag example fmt.Printf("Percentage is %v", flags.Percentage.GetValue(nil)) }

Container class registration and environment key setup

  • You cannot call Rox.setup() twice in the same runtime.

Run your application

Running the application

The flag name is automatically added to the CloudBees Feature Management dashboard after running the application.