go-feature-flag

GO Feature Flag is a simple, complete and lightweight self-hosted feature flag solution 100% Open Source. 🎛️

MIT License

Downloads
1.2K
Stars
1.1K
Committers
17

Bot releases are hidden (Show)

go-feature-flag - v0.8.0

Published by thomaspoignant over 3 years ago

v0.8.0

Features

  • #60 - Support multiple formats for your flag configuration file. You can define your flags in JSON and TOML now, and you can still use YAML if it's what you prefer.
go-feature-flag - v0.7.0

Published by thomaspoignant over 3 years ago

v0.7.0

Features

  • #65 - Call webhooks when a flag has changed

Changes

  • #64 - Create a notification system when flags changes
  • #63 - Bump github.com/stretchr/testify from 1.6.1 to 1.7.0
  • #62 - Bump github.com/aws/aws-sdk-go from 1.36.19 to 1.37.1
go-feature-flag - v0.6.1

Published by thomaspoignant over 3 years ago

v0.6.1

Changes

  • #59 - Remove gocron dependency and use a time.Ticker to handle the background updater.
go-feature-flag - v0.6.0

Published by thomaspoignant almost 4 years ago

v0.6.0

Features

  • #53 - Log flag changes of your flags to be able to trace all the flag changes.
  • #58 - Allow multiple go-feature-flag instances in the same application.

Changes

  • #55 - Refactor to avoid global variables as much as possible.
go-feature-flag - v0.5.0

Published by thomaspoignant almost 4 years ago

v0.5.0

⚠️ Breaking changes

  • #49 - Change the signature to pass the retriever in the config. See the pull request (#49) to have the full details and to see how to migrate from v0.4.1 to v0.5.0.

Why?

The main reason is to have the aws/aws-sdk-go as a dependency only if you are using the S3Retriever. With this new syntax, we don't force you to have the SDK if you are not using it.

How to migrate

If you were using HTTPRetriever, S3Retriever or GithubRetriever, the change consists only of changing the key in the config.

// Before v0.5.0
err := ffclient.Init(ffclient.Config{
    PollInterval: 3,
    HTTPRetriever: &ffClient.HTTPRetriever{
        URL:    "http://example.com/test.yaml",
    },
})

// Since v0.5.0
err := ffclient.Init(ffclient.Config{
    PollInterval: 3,
    Retriever: &ffclient.HTTPRetriever{
        URL:    "http://example.com/test.yaml",
    },
})

It is a bit different for the flag configuration, I have introduced a FileRetriever to keep the same format for all retrievers.

// Before v0.5.0
err := ffclient.Init(ffclient.Config{
    PollInterval: 3,
    LocalFile: "file-example.yaml",
})

// Since v0.5.0
err := ffclient.Init(ffclient.Config{
    PollInterval: 3,
    Retriever: &ffclient.FileRetriever{
        Path:    "file-example.yaml",
    },
})

Features

  • #47 - Add a Timeout properties to specify timeout when calling HTTP Client retriever, default is 10 seconds.
  • #48 - Use context when retrieving the flags, Context could be passed in the ffclient.Config{} during initialization.

Internal

  • #46 - Rename and un-export UserToJSON
go-feature-flag - v0.4.1

Published by thomaspoignant almost 4 years ago

v0.4.1

Fix typo in the documentation.

go-feature-flag - v0.4.0

Published by thomaspoignant almost 4 years ago

v0.4.0

Features

  • Add Github retriever #29
go-feature-flag - v0.3.0

Published by thomaspoignant almost 4 years ago

v0.3.0

  • Variation return default value only if an error appear #24
  • Add log when calling variation #26
go-feature-flag - v0.2.0

Published by thomaspoignant almost 4 years ago

v0.2.0

#13 - Change the way to affect people in the cohort

go-feature-flag - v0.1.0

Published by thomaspoignant almost 4 years ago

Initial release of go-feature-flag

The library support 3 receivers (file, HTTP, and S3).