Giter Site home page Giter Site logo

featbit / featbit Goto Github PK

View Code? Open in Web Editor NEW
1.4K 18.0 81.0 34.8 MB

A feature flags service written in .NET

Home Page: https://www.featbit.co/

License: MIT License

JavaScript 1.14% TypeScript 31.18% HTML 17.06% Less 5.69% C# 39.28% Dockerfile 0.39% Shell 0.62% Python 4.38% PowerShell 0.27%
dotnet feature-management remote-config csharp python typescript ab-testing experimentation feature-flags continuous-delivery

featbit's Introduction

image


Try FeatBit Online

Try FeatBit immediately with our online demo. The video below shows you how to get started quickly.

5.29.4.mp4

About FeatBit

FeatBit is an open-source feature flags management tool that empowers developers:

Ship Code Safely. Mitigate risks with Production Testing, roll out features to 1% of users initially then expanding progressively, and ensure instant error recovery without redeployment.

Targeted Experiences. Giving you control over who sees each feature and when they see it. Release features to specific target users, and continuously measure and improve your business.

Innovate Faster. Decouples code deployments from feature releases. Deploy at will, and release any feature immediately upon request from the boss.

Host Anywhere. FeatBit allows you to host your feature flags service wherever your business needs it, ensuring compliance and data protection.

Born for developers. Use simple if/else statements to control and release features, eliminating complex DevOps tasks. This enables developers to directly drive business value.

Get started in 3 steps

1. Start FeatBit

To self-host FeatBit with Docker, Run this script:

git clone https://github.com/featbit/featbit
cd featbit
docker compose up -d

Once all containers have started, you can access FeatBit's portal at http://localhost:8081 and log in with the default credentials:

Note By default, FeatBit's portal is only accessible from the local machine where Docker Compose is running. If you want to make it publicly accessible, refer to the FAQ for instructions.

2. Connect an SDK

Find your preferred SDK in our list of official SDKs and import it into your project. Follow the setup guides for your specific SDK.

You can also learn how to connect an SDK in the "Getting Started" section after logging in to the Portal for the first time.

image

3. Check a feature flag

To check the state of a feature flag in your code, you just need a simple function call to verify the expected value. Here's how it might look in C#:

var user = FbUser.Builder("tester-id").Name("tester").Build();
if (featbit.BoolVariation("user-new-algorithm", user, defaultValue: false))
{
    // run new algorithm
}
else
{
    // run old algorithm
}

πŸ™ If you are using FeatBit, we have launched the FeatBit Usage Survey. It would be greatly appreciated and incredibly helpful if you could take the time to fill it out (5 questions).


Configure and run FeatBit anywhere

The above sections show you how to get up and running quickly and easily. When you're ready to start configuring and customizing FeatBit for your own environment, check out the Installation Documentation, K8s Manifest Files and FeatBit Agent Documentation for getting started with self-managed deployments, FeatBit configuration options, or running FeatBit locally via docker.

Documentation & Community

Official Documentation

Join our Online Slack Support & Community

Connect with FeatBit on LinkedIn

Email us at [email protected] if Slack isn't your thing.

Official Website

Features

FeatBit offers a range of features including:

featbit-readme-new-2

Contribute

Building FeatBit is a collaborative effort, and we owe much gratitude to many intelligent and talented individuals.

Join Slack to get your assignment.

Contributors

We would like to express our gratitude to all the individuals who have already contributed to FeatBit!

Made with contrib.rocks.

License

FeatBit is an Open Core product. The bulk of the code is under permissive MIT license. See the LICENSE file for details.

The following listed features are protected by a commercial license key, please contact us by Slack or Email to get a license key or a trial license key:

  • Schedule
  • Change request
  • SSO
  • Multi-organizations

featbit's People

Contributors

allcontributors[bot] avatar apo-j avatar ayushhagarwal avatar benirave avatar cosmic-flood avatar cosmos-explorer avatar davefz avatar defqd avatar deletelater avatar dsun0720 avatar erik247ts avatar exilon24 avatar fivenp avatar fmoro1999 avatar kabir-webdev avatar leebingler avatar michaelg22 avatar michaelyuhe avatar mucoban avatar mudit-loya avatar omahs avatar qixiaojian310 avatar sagar110599 avatar san-ki avatar shubh8899 avatar shubhamkashyap1601 avatar wss-alubic avatar wss-rbrennan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

featbit's Issues

[Bug]: Audit log page not displaying segments and targeting users correctly

Contact Details

No response

What happened?

Targeting users and segments are not correctly displayed in audit log page

To Reproduce

To reproduce:

  • Go to a feature flag targeting pge
  • Add a user to one of the individual targetings
  • Add a rule and select User is in segment in the property dropdown
  • Select one segment (create one if no existing segments)
  • Click on Preview and save button
  • Go to Audit logs page

Expected behavior

The name of user and the name of segments should be dispalyed

Screenshots

image

Browsers

No response

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

[Bug]: I can't update my feature flag

Contact Details

[email protected]

What happened?

I changed my percentage roll-out in one of my customized rule.

But my change isn't detected by system. It doesn't allow me to make change.

To Reproduce

  1. Create a feature flag with a customized rule, and make a 10% 90% percentage for this rule.
  2. Save.
  3. Back to the same feature flag and the same rule, change 10% to 20%, 90% to 80%. Click review and change.
  4. Save disabled by system

Expected behavior

Fixed this bug

Screenshots

image
image

Browsers

Chrome, Edge

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

[Bug]: Can access and login only on localhost but login from another machine login generate an error

Contact Details

[email protected]

What happened?

I ran the docker compose all containers up and running and I was able to log on the machine using http://mysevername:8081.
When I try same thing but from another machine, I get the login page but when I enter login and password, it indicates has happened and get stuck on the login page

To Reproduce

  1. On the local machine visit http://myhostname:8081 (not localhost)
  2. Login page is displayed
  3. after entering credentials I get into the site
  4. go to another machine in the same LAN, use the same URL and credentials
  5. click on login
  6. error happened and screen gets stiuck on the login page I used 2 different browsers, firefox as well as Edge

Expected behavior

No response

Screenshots

on local machine where containers run

image

from remote machine

image

Browsers

Firefox Edge

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

[Feat] Flag change metric

In the feature flag usage chart, I need to know when the flag has been changed and the change detail. Like the image below:

image

UI enhancement for segment's targeting page

Describe the bug
You should add padding for label "This segment is not used by any feature flag" on segment's targeting page

To Reproduce
image

Expected behavior
image

Browser (please complete the following information):

  • chrome, edge, safari

[Bug]: User Key in ASCII charset.

Contact Details

No response

What happened?

User Key is converted to ASCII characters in the rollout algorithm. There would be a prob if User Key contains special characters

To Reproduce

  1. Go to...

Expected behavior

No response

Screenshots

No response

Browsers

No response

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

[Bug]: Can't create a feature flag that contains '%' in name

Contact Details

[email protected]

What happened?

After I created a feature flag with '%' in the name, the feature flag detail page is always in loading status.

To Reproduce

  1. Add new feature flag
  2. Name it as perf-ws-load-testing-return-10%-true
  3. Go to detail page, loading animation doesn't stop.

Expected behavior

No response

Screenshots

image

Browsers

Edge, Chrome

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

[Bug]: extra space before key in user property preset values editing modal

What happened?

There is an extra space before key in user property preset values editing modal

To Reproduce

  1. Go to user property page
  2. add a property
  3. click on edit preset value button
  4. add a key and description and click on add button
    screenshot:
    img_v2_9c54aae5-613e-4980-a64f-05373f45fcbg

Expected behavior

Remove the extra space

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

[BUG] Delete member failed with initial account

Describe the bug
I tried to delete an account of new member, but it failed. I am with initial account ([email protected])

To Reproduce
Steps to reproduce the behavior:

  1. Add a new member
  2. Remove a new member
  3. You will receive a failed message

Expected behavior
Be ablet to remove the member

Screenshots
image

Browser (please complete the following information):
Edge with chromium

[Bug]: when a change happens on segment targeting page, the setting page need to be refreshed

What happened?

[Bug]: when a change happens on segment targeting page, the setting page need to be refreshed

To Reproduce

  1. Go to a segment page
  2. Change something on the targeting and save
  3. Change anything on the setting page and save
  4. Refresh the page and you can see the changes on targeting page disapeared

Expected behavior

The changes should not be disappeared

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

[Bug]: Organization creator don't have permissions to manage IAM

What happened?

After I create a new organization, I don't have the permissions to manage its IAM.

To Reproduce

  1. Create a new organization
  2. Click IAM/Team menu
  3. A warning message says that I don't have permissions to take this action

Code of Conduct

  • I agree to follow this project's Code of Conduct

[Bug]: Feature flag history tab content cannot scroll

What happened?

Feature flag history tab content cannot scroll

To Reproduce

  1. Go to feature flag tageting page
  2. Modify the feature flag multple times to have enough history items
  3. Go to history tab
  4. All history items are not visible if it has more than one page

Expected behavior

We should be able to scroll page to see all items

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

The side panel cannot be closed after creation of an environment

Describe the bug

The side panel cannot be closed after creation of an environment

To Reproduce

Go to Organization/Projects page and add a new environment to a existing project

Expected behavior

The right panel should close successfully

Browser

N/A

Additional context

N/A

[Feat] Onboarding complete guide

As a developer tool and also a software for team work (PM, OP, UI, QA, etc.), it's better to have onboarding process to guide new users complete their first experiment with the tool.

I created a feature-request in discussion's feature request channel. welcome to discuss here #35

  • Learn
  • Design
  • PRD
  • Tasks Assignment

[BUG] Segment History UI enhancement

Describe the bug
If segment description is too long, UI display incorrect

To Reproduce
image

Expected behavior
image

Browser (please complete the following information):

  • Chrome, Edge, Safari, Firefox

Experimenation appeared in the wrong feature flag page

Experimenation appeared in the wrong feature flag page. Here is how to reproduce the bug:

  1. create a feature flag "first flag"
  2. create a metric "metric a"
  3. create an experimentation with "first flag" and "metric a"
  4. start and pause this experimenation, restart and pause again.
  5. create another feature flag "second flag"
  6. create an experimentation with "second flag" and "metric a"
  7. in experimentation tab of "second flag", you will see two experimentations.

Here are screen captures to explain better the bug:

The image below shows all experimentation i created:

  • First experimentation: feature flag "ab testing" with metric "demo completed"
  • Second experimentation: feature flag "demo process" with metric "demo completed"

image

But when i get into the experimenation tab of feature flag "ab testing", it gave me two experimenation instead of one (the first experimentation i mentioned above)

image

When i get into the experimenation tab of feature flag "demo process", it gave me two experimenation instead of one (the second experimentation i mentioned above)

image

I wish that i describe clear enought to understand the bug.

[Bug]: Scroller bug on policy setting page

What happened?

I can't scroll down to add a new policy action setting on policy's permission tab

To Reproduce

image

Expected behavior

No response

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

[Bug]: Cannot find users in segment individual list

Contact Details

[email protected]

What happened?

I can't find users by filter starts with in segment individual list.

To Reproduce

  1. Add 15 users, their name and key are both starts with "perf-ws-load-testing-user-"
  2. Create a segment
  3. Add users to individual targeting users
  4. After added 5 users, other users starts with "perf-ws-load-testing-user-" isn't displayed in filtering list.

Expected behavior

No response

Screenshots

I can't find users in End users list by filtering

image

End users list

image

Browsers

No response

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Light Version FeatBit

  • DA Server: replace CH with mongodb
  • api
  • evaluation server
  • Remove CH, kafka (zookeeper)

[BUG] The container name/port may conflict when user run docker-compose up -d

Describe the bug
When user try our system with docker-compose up -d, container name/port may conflict

To Reproduce
Steps to reproduce the behavior

# create a redis container named 'redis' and bind port 6379 to it
docker run -d -p 6379:6379 --name redis redis

# change directory to featbit
cd featbit

# up featbit
docker-compose up -d

we can see this error
Error response from daemon: Conflict. The container name "/redis" is already in use by container "74d8d135781f10e373849e6c24bde7a6cbb37d55443eae87b31bae79791217e8". You have to remove (or rename) that container to be able to reuse that name.

Expected behavior
featbit system should be launched

It's very inconvenient to add customized properties manually to "End users" page. Each time we use properties in the "Segment" or "Feature flag targeting" page, we need to go find how it's written in the code source of the application. But you know the people who use Portal may not have permission to access the code source (i mean to check how the properties are written).

  It's very inconvenient to add customized properties manually to "End users" page. Each time we use properties in the "Segment" or "Feature flag targeting" page, we need to go find how it's written in the code source of the application. But you know the people who use Portal may not have permission to access the code source (i mean to check how the properties are written).

For the other products (like Launchdarkly), the customized properties are added automatically to the portal after communication between SDK and the feature flags server.

image

Could it be added automatically after the SDK initialized ?

image

Originally posted by @Obsidian6s in https://github.com/featbit/featbit/discussions/96

[Bug]: Test

What happened?

A bug happened!

To Reproduce

  1. Go to...

Expected behavior

No response

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

[bug]: When running the UI in docker, the url localhost:port/en does not work

Describe the bug

When running the UI in docker, the url localhost:port/en does not work

To Reproduce

I ran the UI with

docker build -t featbit/ui .
docker run -d -p 8080:80 --name featbit-ui featbit/ui

In the navigator, if I put localhost:8080 or localhost:8080/en/, everything works like a charme,
but when I tried with localhost:8080/en, it's not working and the browser is redirected to localhost/en
It's obvious the port is missing

Expected behavior

It should work with localhost:8080/en

Browser

N/A

Additional context

N/A

[Bug]: experiment drawer won't close when user clicks mask

What happened?

Experiment drawer is not closed when I click mask

To Reproduce

  1. Open experiment drawer
  2. Click the mask

Expected behavior

The experiment drawer should be closed

Browsers

Chrome

Code of Conduct

  • I agree to follow this project's Code of Conduct

[Bug]: Can't recreate an experimentation

What happened?

See "To Reproduce"

To Reproduce

  1. I create an experiment with a feature flag and metric
  2. I run this experiment
  3. I pause this experiment
  4. I remove this experiment
  5. I recreate an experiment with the same feature flag and metric
  6. Experiment disappears in the experiment list and in the feature flag experiment tab. I can't create a new experiment with the same feature flag and metric

Expected behavior

No response

Additional context

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.