Categorygithub.com/configcat/go-sdk/v8
modulepackage
8.0.1
Repository: https://github.com/configcat/go-sdk.git
Documentation: pkg.go.dev

# README

ConfigCat SDK for Go

https://configcat.com

ConfigCat SDK for Go provides easy integration for your application to ConfigCat.

ConfigCat is a feature flag and configuration management service that lets you separate releases from deployments. You can turn your features ON/OFF using ConfigCat Dashboard even after they are deployed. ConfigCat lets you target specific groups of users based on region, email or any other custom user attribute.

ConfigCat is a hosted feature flag service. Manage feature toggles across frontend, backend, mobile, desktop apps. Alternative to LaunchDarkly. Management app + feature flag SDKs.

Build Status Go Report Card codecov GoDoc License

Getting started

1. Install the package with go

go get github.com/configcat/go-sdk/v8

2. Go to the ConfigCat Dashboard to get your SDK Key:

SDK-KEY

3. Import the ConfigCat client package to your application

import "github.com/configcat/go-sdk/v8"

4. Create a ConfigCat client instance:

client := configcat.NewClient("#YOUR-SDK-KEY#")

5. Get your setting value:

isMyAwesomeFeatureEnabled := client.GetBoolValue("isMyAwesomeFeatureEnabled", false, nil)
if isMyAwesomeFeatureEnabled {
    DoTheNewThing()
} else {
    DoTheOldThing()
}

6. Close ConfigCat client on application exit:

client.Close()

Getting user specific setting values with Targeting

Using this feature, you will be able to get different setting values for different users in your application by passing a UserData struct to the specific setting evaluation method (GetBoolValue(), GetStringValue(), GetIntValue(), GetFloatValue()).

Read more about Targeting here.

user := &configcat.UserData{Identifier: "#USER-IDENTIFIER#"}

isMyAwesomeFeatureEnabled := client.GetBoolValue("isMyAwesomeFeatureEnabled", false, user)
if isMyAwesomeFeatureEnabled {
    DoTheNewThing()
} else {
    DoTheOldThing()
}

Polling Modes

The ConfigCat SDK supports 3 different polling mechanisms to acquire the setting values from ConfigCat. After latest setting values are downloaded, they are stored in the internal cache then all requests are served from there. Read more about Polling Modes and how to use them at ConfigCat Docs.

Need help?

https://configcat.com/support

Contributing

Contributions are welcome. For more info please read the Contribution Guideline.

About ConfigCat

# Packages

Package configcatcache holds utility functions for the SDK's caching.
Package configcattest provides an HTTP handler that can be used to test configcat scenarios in tests.
No description provided by the author

# Functions

Bool returns a representation of a boolean-valued flag.
DefaultLogger creates the default logger with specified log level (logrus.New()).
Float is like Bool but for float-valued flags.
Int is like Bool but for int-valued flags.
NewClient returns a new Client value that access the default configcat servers using the given SDK key.
NewCustomClient initializes a new ConfigCat Client with advanced configuration.
NewSnapshot returns a snapshot that always returns the given values.
String is like Bool but for string-valued flags.

# Constants

AutoPoll causes the client to refresh the configuration automatically at least as often as the Config.PollInterval parameter.
No description provided by the author
EUOnly Select this if your feature flags are published to CDN nodes only in the EU.
Global Select this if your feature flags are published to all global CDN nodes.
Lazy will refresh the configuration whenever a value is retrieved and the configuration is older than Config.PollInterval.
LocalOnly means that when evaluating values, the SDK will not use feature flags and settings from the ConfigCat CDN, but it will use all feature flags and settings that are loaded from local-override sources.
LocalOverRemote means that when evaluating values, the SDK will use all feature flags and settings that are downloaded from the ConfigCat CDN, plus all feature flags and settings that are loaded from local-override sources.
Define the logrus log levels.
Define the logrus log levels.
Define the logrus log levels.
Define the logrus log levels.
Define the logrus log levels.
Define the logrus log levels.
Define the logrus log levels.
Manual will only refresh the configuration when Refresh is called explicitly, falling back to the cache for the initial value or if the refresh fails.
RemoteOverLocal means when evaluating values, the SDK will use all feature flags and settings that are downloaded from the ConfigCat CDN, plus all feature flags and settings that are loaded from local-override sources.

# Structs

BoolEvaluationDetails holds the additional evaluation information along with the value of a bool flag.
No description provided by the author
Client is an object for handling configurations provided by ConfigCat.
Config describes configuration options for the Client.
ErrKeyNotFound is returned when a key is not found in the configuration.
EvaluationDetails holds the additional evaluation information along with the value of a feature flag or setting.
EvaluationDetailsData holds the additional evaluation information of a feature flag or setting.
FlagOverrides describes feature flag and setting overrides.
FloatEvaluationDetails holds the additional evaluation information along with the value of a decimal number flag.
No description provided by the author
Hooks describes the events sent by Client.
IntEvaluationDetails holds the additional evaluation information along with the value of a whole number flag.
No description provided by the author
No description provided by the author
No description provided by the author
Snapshot holds a snapshot of the ConfigCat configuration.
StringEvaluationDetails holds the additional evaluation information along with the value of a string flag.
No description provided by the author
UserData implements the User interface with the basic set of attributes.

# Interfaces

ConfigCache is a cache API used to make custom cache implementations.
Flag is the interface implemented by all flag types.
Logger defines the interface this library logs with.
The User interface represents the user-specific data that can influence configcat rule evaluation.
UserAttributes can be implemented by a User value to implement support for getting arbitrary attributes.

# Type aliases

DataGovernance describes the location of your feature flag and setting data within the ConfigCat CDN.
No description provided by the author
OverrideBehavior describes how the overrides should behave.
PollingMode specifies a strategy for refreshing the configuration.