Flagsmith Enterprise Edition
Overview
The Flagsmith platform is made up of 4 main components:
- The Flagsmith REST API
- The Flagsmith administration front end (a React-based web application)
- A SQL Database (currently we support Postgres)
- A time-series database (currently we support InfluxDB 2.0)
All of these components are open source, but the API is also provided as an "Enterprise Edition" which has additional features and capabilities:
- Roll Based Access Controls
- SAML authentication
- Additional Database Engines (Oracle, SQL Server and MySQL)
Deployment Options
We currently support the following infrastructure platforms:
- Kubernetes
- Redhat OpenShift
- Amazon Web Services (AWS) - via Amazon ECS
- Google Cloud Platform (GCP) - via AppEngine
If you require additional deployment options, please contact us.
Orchestration
We currently have the following orchestration options:
- Pulumi scripts for AWS deployments
- Terraform scripts for AWS and GCP deployments
- Helm Charts for Kubernetes deployments
Please contact us for the relevant source code for these projects.
Docker Image Repository
The Flagsmith API Enterprise Edition is hosted within AWS ECR. To access the Docker images in this repository you will need an AWS IAM access key and secret. Please contact us for these credentials.
The base ECR image repository URL is 084060095745.dkr.ecr.eu-west-2.amazonaws.com
.
Requirements
You must install the AWS cli and the docker command line tools.
Pulling the Docker images
Once you have been provided with these credentials, add the following to your ~/.aws/credentials
:
[flagsmith-ee-ecr]
aws_access_key_id = <your AWS access key>
aws_secret_access_key = <your AWS secret key>
Then you can log in to AWS and add the access token to your docker cli
aws --profile flagsmith-ee-ecr ecr get-login-password --region eu-west-2 | docker login --username AWS --password-stdin 084060095745.dkr.ecr.eu-west-2.amazonaws.com
You can then use regular docker commands, e.g.:
docker pull 084060095745.dkr.ecr.eu-west-2.amazonaws.com/flagsmith-api-ee:latest
Environment Variables
Frontend Environment Variables
Env Var: API_URL Value example: http://localhost:8888/api/v1 Description: The URL of the API Backend
Variable: FLAGSMITH_CLIENT_API Value example: http://localhost:8888/api/v1 Description: This is where the features for the front end themselves are pulled from. Create a project within your backend and refer to flag names here.
Env Var: FLAGSMITH
Value example: 4vfqhypYjcPoGGu8ByrBaj
Description: The environment id
for the FLAGSMITH_CLIENT_API
project above.
Backend Environment Variables
Version Tags
The versions of the flagsmith-api-ee
track the versions of our Open Source version. You can view these tags here:
https://github.com/Flagsmith/flagsmith-api/tags
Load testing
JMeter
There are JMeter tests avaiable in our public repo on Github:
https://github.com/Flagsmith/flagsmith-api/tree/master/jmeter-tests
wrk
We also recommend using wrk for load testing the core SDK endpoints. Some examples of this (make sure you update URL and environment keys!)
# Simple get flags endpoint
wrk -t6 -c200 -d20s -H 'X-Environment-Key: iyiS5EDNDxMDuiFpHoiwzG' http://127.0.0.1:8000/api/v1/flags/
# Get flags for an identity
wrk -t6 -c200 -d20s -H 'X-Environment-Key: iyiS5EDNDxMDuiFpHoiwzG' "http://127.0.0.1:8000/api/v1/identities/?identifier=ben.rometsch%40bullet-train.io"
Common Installation Issues and Fixes
Front end build errors with npm ERR! errno 137
This is an out of memory error. Start the container with more RAM.