Compare commits

..

No commits in common. "main" and "v0.16.0" have entirely different histories.

22 changed files with 2931 additions and 2620 deletions

View File

@ -28,9 +28,6 @@ FLAGSMITH_ENV_KEY=
# Harness SDK Key
HARNESS_KEY=
# ConfigCat SDK Key
CONFIGCAT_SDK_KEY=
###############################################
##
## Feature Flag SDK keys (web)
@ -63,6 +60,3 @@ FLAGD_PORT_WEB=
# Determines if TLS (https) should be used
# @default false
FLAGD_TLS_WEB=
# ConfigCat SDK Key
CONFIGCAT_SDK_KEY_WEB=

View File

@ -7,27 +7,20 @@ on:
pull_request:
branches:
- 'main'
merge_group:
jobs:
main:
runs-on: equinix-4cpu-16gb
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
- uses: actions/checkout@v4
with:
# We need to fetch all branches and commits so that Nx affected has a base to compare against.
fetch-depth: 0
- uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4
- uses: nrwl/nx-set-shas@v4
- uses: actions/setup-node@v4
with:
node-version: 18
cache: 'npm'
# Mark your git directory as safe for self-hosted runners
# https://github.com/nrwl/nx-set-shas?tab=readme-ov-file#self-hosted-runners
- name: Set Directory as Safe
run: |
git config --add safe.directory "$GITHUB_WORKSPACE"
shell: bash
- uses: nrwl/nx-set-shas@e2e6dc8bce4b0387a05eb687735c39c41580b792 # v4
- run: npm ci
- run: npx nx affected --target=lint --parallel=3
- run: npx nx affected --target=build --parallel=3 --ci

View File

@ -1,15 +0,0 @@
# based on https://github.com/onnx/onnx/blob/main/.github/workflows/dco_merge_group.yml
name: DCO
on:
merge_group:
permissions: # set top-level default permissions as security best practice
contents: read # Check https://github.com/ossf/scorecard/blob/7ce8609469289d5f3b1bf5ee3122f42b4e3054fb/docs/checks.md#token-permissions
jobs:
DCO:
runs-on: ubuntu-latest
if: ${{ github.actor != 'dependabot[bot]' }}
steps:
- run: echo "dummy DCO workflow (it won't run any check actually) to trigger by merge_group in order to enable merge queue"

View File

@ -12,6 +12,6 @@ jobs:
name: Validate PR title
runs-on: ubuntu-latest
steps:
- uses: amannn/action-semantic-pull-request@0723387faaf9b38adef4775cd42cfd5155ed6017 # v5
- uses: amannn/action-semantic-pull-request@v5
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View File

@ -13,13 +13,12 @@ jobs:
runs-on: ubuntu-latest
# Release-please creates a PR that tracks all changes
steps:
- uses: google-github-actions/release-please-action@db8f2c60ee802b3748b512940dde88eabd7b7e01 # v3
- uses: google-github-actions/release-please-action@v3
id: release
with:
command: manifest
token: ${{secrets.RELEASE_PLEASE_ACTION_TOKEN}}
token: ${{secrets.GITHUB_TOKEN}}
default-branch: main
signoff: "OpenFeature Bot <109696520+openfeaturebot@users.noreply.github.com>"
outputs:
release_created: ${{ steps.release.outputs.release_created }}
release_tag_name: ${{ steps.release.outputs.tag_name }}
@ -30,12 +29,12 @@ jobs:
if: ${{ needs.release-please.outputs.release_created }}
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
uses: actions/checkout@v4
with:
ref: ${{ needs.release-please.outputs.release_tag_name }}
- name: Log in to the Container registry
uses: docker/login-action@465a07811f14bebb1938fbed4728c6a1ff8901fc # v2
uses: docker/login-action@v2
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
@ -43,7 +42,7 @@ jobs:
- name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@818d4b7b91585d195f67373fd9cb0332e31a7175 # v4
uses: docker/metadata-action@v4
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
@ -52,15 +51,15 @@ jobs:
run: echo "::set-output name=date::$(date +'%Y-%m-%d')"
- name: Set up QEMU
uses: docker/setup-qemu-action@49b3bc8e6bdd4a60e6116a5414239cba5943d3cf # v3
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@6524bf65af31da8d45b59e8c27de4bd072b392f5 # v3
uses: docker/setup-buildx-action@v3
with:
platforms: linux/amd64,linux/arm64
- name: Build App Container
uses: docker/build-push-action@0a97817b6ade9f46837855d676c4cca3a2471fc9 # v4
uses: docker/build-push-action@v4
with:
context: .
file: ./packages/app/Dockerfile
@ -77,7 +76,7 @@ jobs:
DATE=${{ steps.date.outputs.date }}
- name: Build Fibonacci Service Container
uses: docker/build-push-action@0a97817b6ade9f46837855d676c4cca3a2471fc9 # v4
uses: docker/build-push-action@v4
with:
context: .
file: ./packages/fibonacci-service/Dockerfile

View File

@ -29,7 +29,6 @@ If you're brand new to feature flagging, consider reviewing the [What are featur
- [LaunchDarkly](#launchdarkly)
- [Flagsmith](#flagsmith)
- [Flipt](#flipt)
- [ConfigCat](#configcat)
- [Experimenting beyond the demo](#experimenting-beyond-the-demo)
- [Evaluation context](#evaluation-context)
- [Troubleshooting](#troubleshooting)
@ -429,38 +428,6 @@ It's easy to set up, has no seat limits, and is built for developers from scale-
After [starting the demo](#how-to-run-the-demo), the Flipt UI is available at [http://localhost:8080](http://localhost:8080).
### ConfigCat
[ConfigCat](https://configcat.com/) is a user-friendly, scalable and secure feature flagging solution with clear [pricing](https://configcat.com/#pricing). ConfigCat allows for unlimited team members and MAUs across all plans, including the free tier. All ConfigCat plans come with all security measures, including audit logs, two-factor authentication, SSO, SAML and SCIM for secure feature management. ConfigCat offers users the choice to keep data within the EU to comply with GDPR more easily. ConfigCat provides SDKs for all major programming languages and platforms.
<details>
<summary>Follow these steps to set up ConfigCat for the demo:</summary>
1. Sign in to your ConfigCat account. If you don't already have an account, you can [sign up](https://app.configcat.com/auth/signup) for free.
1. Create a new feature flag with the key `new-welcome-message`.
<img src="./images/configcat/new-welcome-message.png">
1. Create a new text setting with the key `hex-color`. Add three percentage options (`+ %` button) with the following values: `c05543`, `2f5230`, and `0d507b`. Set `c05543` to 100%. Set the `To unindentified` value to `c05543`.
<img src="./images/configcat/hex-color.png">
1. Create a new text setting with the key `fib-algo`.
- Add a targeting rule (`+ IF` button) that looks for the `Email` user attribute to end with `@faas.com` and serves `binet`.
- Add five percentage options (`+ %` button) with the following values: `recursive`, `memo`, `loop`, `binet`, and `default`. Set `recursive` to 100%.
- Set the `To unindentified` value to `default`.
<img src="./images/configcat/fib-algo.png">
1. Click on `VIEW SDK KEY` and copy the `SDK Key`.
<img src="./images/configcat/sdk-key.png">
1. Open the `.env` file and set the values of `CONFIGCAT_SDK_KEY` and `CONFIGCAT_SDK_KEY_WEB` to the key copied above.
Now that everything is configured, you should be able to [start the demo](#how-to-run-the-demo). Once it's started, select `configcat` from the provider list located at the bottom right of your screen. You should now be able to control the demo app via ConfigCat!
</details>
## Experimenting beyond the demo
### Evaluation context

View File

@ -1,131 +0,0 @@
# Flags for our UI
apiVersion: core.openfeature.dev/v1beta1
kind: FeatureFlag
metadata:
name: ui-flags
labels:
app: open-feature-demo
spec:
flagSpec:
flags:
new-welcome-message:
state: ENABLED
variants:
'on': true
'off': false
defaultVariant: 'off'
hex-color:
variants:
red: c05543
green: 2f5230
blue: 0d507b
yellow: d4ac0d
defaultVariant: blue
state: ENABLED
targeting:
if:
- in:
- '@faas.com'
- var:
- email
- yellow
- null
---
# Feature flag source custom resource, configuring flagd to source flags from FeatureFlag CRDs
apiVersion: core.openfeature.dev/v1beta1
kind: FeatureFlagSource
metadata:
name: ui-flag-source
labels:
app: open-feature-demo
spec:
sources:
- source: ui-flags
provider: kubernetes
---
# Standalone flagd for serving UI
apiVersion: core.openfeature.dev/v1beta1
kind: Flagd
metadata:
name: flagd-ui
spec:
replicas: 1
serviceAccountName: default
featureFlagSource: ui-flag-source
ingress:
enabled: true
annotations:
nginx.ingress.kubernetes.io/force-ssl-redirect: 'false'
hosts:
- localhost
- ''
ingressClassName: nginx
pathType: Prefix
---
# Deployment of a demo-app using our custom resources
apiVersion: apps/v1
kind: Deployment
metadata:
name: open-feature-demo-deployment
labels:
app: open-feature-demo
spec:
replicas: 1
selector:
matchLabels:
app: open-feature-demo
template:
metadata:
labels:
app: open-feature-demo
annotations:
openfeature.dev/enabled: 'true'
openfeature.dev/inprocessconfiguration: 'in-process-config'
spec:
containers:
- name: open-feature-demo
image: ghcr.io/open-feature/playground-app:v0.16.0 # x-release-please-version
ports:
- containerPort: 30000
args:
- flagd
env:
- name: FLAGD_PORT_WEB
value: '80'
- name: FLAGD_OFREP_PORT_WEB
value: '80'
---
# Service to expose our application
apiVersion: v1
kind: Service
metadata:
name: open-feature-demo-app-service
labels:
app: open-feature-demo
spec:
type: NodePort
selector:
app: open-feature-demo
ports:
- port: 30000
targetPort: 30000
nodePort: 30000
---
# Ingress for our application
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: open-feature-demo-ingress
spec:
ingressClassName: nginx
rules:
- host: localhost
http:
paths:
- pathType: Prefix
path: /
backend:
service:
name: open-feature-demo-app-service
port:
number: 30000

View File

@ -25,7 +25,7 @@ spec:
targeting:
if:
- in:
- '@faas.com'
- "@faas.com"
- var:
- email
- yellow
@ -52,7 +52,7 @@ spec:
targeting:
if:
- in:
- '@faas.com'
- "@faas.com"
- var:
- email
- binet
@ -96,8 +96,8 @@ spec:
labels:
app: open-feature-demo
annotations:
openfeature.dev/enabled: 'true'
openfeature.dev/featureflagsource: 'flag-sources'
openfeature.dev/enabled: "true"
openfeature.dev/featureflagsource: "flag-sources"
spec:
containers:
- name: open-feature-demo
@ -108,7 +108,7 @@ spec:
- containerPort: 30000
env:
- name: FLAGD_PORT_WEB
value: '30002'
value: "30002"
---
# Service to expose our application
apiVersion: v1

View File

@ -1,125 +0,0 @@
# Flags for our backend application
apiVersion: core.openfeature.dev/v1beta1
kind: FeatureFlag
metadata:
name: app-flags
labels:
app: open-feature-demo
spec:
flagSpec:
flags:
fib-algo:
variants:
recursive: recursive
memo: memo
loop: loop
binet: binet
defaultVariant: recursive
state: ENABLED
use-remote-fib-service:
state: ENABLED
variants:
'on': true
'off': false
defaultVariant: 'off'
---
# Feature flag source custom resource, configuring flagd to source flags from FeatureFlag CRDs
apiVersion: core.openfeature.dev/v1beta1
kind: FeatureFlagSource
metadata:
name: app-flag-source
labels:
app: open-feature-demo
spec:
sources:
- source: app-flags
provider: kubernetes
---
# Standalone flagd for serving in-process provider
apiVersion: core.openfeature.dev/v1beta1
kind: Flagd
metadata:
name: flagd-in-process
spec:
replicas: 1
serviceType: ClusterIP
serviceAccountName: default
featureFlagSource: app-flag-source
---
# In-process provider configuration
apiVersion: core.openfeature.dev/v1beta1
kind: InProcessConfiguration
metadata:
name: in-process-config
spec:
host: flagd-in-process
---
# Deployment of a demo-app using our custom resources
apiVersion: apps/v1
kind: Deployment
metadata:
name: open-feature-demo-deployment
labels:
app: open-feature-demo
spec:
replicas: 1
selector:
matchLabels:
app: open-feature-demo
template:
metadata:
labels:
app: open-feature-demo
annotations:
openfeature.dev/enabled: 'true'
openfeature.dev/inprocessconfiguration: 'in-process-config'
spec:
containers:
- name: open-feature-demo
image: ghcr.io/open-feature/playground-app:v0.16.0 # x-release-please-version
ports:
- containerPort: 30000
args:
- flagd
env:
- name: FLAGD_PORT_WEB
value: '80'
- name: FLAGD_PATH_PREFIX
value: 'flagd'
- name: FLAGD_OFREP_PORT_WEB
value: '80'
---
# Service to expose our application
apiVersion: v1
kind: Service
metadata:
name: open-feature-demo-app-service
labels:
app: open-feature-demo
spec:
type: NodePort
selector:
app: open-feature-demo
ports:
- port: 30000
targetPort: 30000
nodePort: 30000
---
# Ingress for our application
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: open-feature-demo-ingress
spec:
ingressClassName: nginx
rules:
- host: localhost
http:
paths:
- pathType: Prefix
path: /
backend:
service:
name: open-feature-demo-app-service
port:
number: 30000

View File

@ -38,7 +38,6 @@ services:
- LD_KEY
- FLAGSMITH_ENV_KEY
- CLOUDBEES_APP_KEY
- CONFIGCAT_SDK_KEY
## Web
- HARNESS_KEY_WEB
- SPLIT_KEY_WEB
@ -48,7 +47,6 @@ services:
- FLAGD_HOST_WEB
- FLAGD_PORT_WEB
- FLAGD_TLS_WEB
- CONFIGCAT_SDK_KEY_WEB
fib-service:
image: ghcr.io/open-feature/playground-fib-service:v0.16.0 # x-release-please-version
@ -76,10 +74,9 @@ services:
- LD_KEY
- FLAGSMITH_ENV_KEY
- CLOUDBEES_APP_KEY
- CONFIGCAT_SDK_KEY
jaeger:
image: jaegertracing/all-in-one:1.60
image: jaegertracing/all-in-one:1.56
expose:
- '6832/udp'
- '4317'
@ -87,7 +84,7 @@ services:
- '16686:16686'
otel-collector:
image: otel/opentelemetry-collector-contrib:0.105.0
image: otel/opentelemetry-collector-contrib:0.98.0
restart: always
command: [ "--config=/etc/otel-collector-config.yaml" ]
volumes:
@ -103,7 +100,7 @@ services:
prometheus:
container_name: prometheus
image: prom/prometheus:v2.55.1
image: prom/prometheus:v2.51.2
restart: always
volumes:
- ./config/prometheus/prometheus.yaml:/etc/prometheus/prometheus.yml
@ -111,7 +108,7 @@ services:
- "9090:9090"
flagd:
image: ghcr.io/open-feature/flagd:v0.11.5
image: ghcr.io/open-feature/flagd:v0.10.1
command:
- start
- --cors-origin
@ -129,14 +126,14 @@ services:
- '8016:8016'
go-feature-flag:
image: thomaspoignant/go-feature-flag:v1.40.0
image: thomaspoignant/go-feature-flag:v1.26.0
volumes:
- ./config/go-feature-flag:/goff/
ports:
- "1031:1031"
init_flipt:
image: docker.flipt.io/flipt/flipt:v1.53.2
image: docker.flipt.io/flipt/flipt:v1.42.0
command: ["./flipt", "import", "/var/opt/flipt/flipt.yml"]
environment:
FLIPT_LOG_LEVEL: debug
@ -147,7 +144,7 @@ services:
- "flipt:/var/opt/flipt"
flipt:
image: docker.flipt.io/flipt/flipt:v1.53.2
image: docker.flipt.io/flipt/flipt:v1.42.0
command: ["./flipt", "--force-migrate"]
environment:
FLIPT_CORS_ENABLED: true

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 49 KiB

5055
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -19,12 +19,10 @@
"@harnessio/ff-javascript-client-sdk": "^1.21.0",
"@harnessio/ff-nodejs-server-sdk": "^1.4.0",
"@nestjs/axios": "^3.0.2",
"@nestjs/common": "10.4.15",
"@nestjs/core": "10.4.15",
"@nestjs/platform-express": "10.4.15",
"@nestjs/common": "10.3.8",
"@nestjs/core": "10.3.8",
"@nestjs/platform-express": "10.3.8",
"@nestjs/serve-static": "^4.0.2",
"@openfeature/config-cat-web-provider": "^0.1.3",
"@openfeature/config-cat-provider": "^0.7.2",
"@openfeature/env-var-provider": "^0.3.0",
"@openfeature/flagd-provider": "^0.13.0",
"@openfeature/flagd-web-provider": "^0.7.0",
@ -48,7 +46,7 @@
"@opentelemetry/semantic-conventions": "^1.23.0",
"@splitsoftware/openfeature-js-split-provider": "^1.0.7",
"@splitsoftware/splitio": "^10.24.1",
"@splitsoftware/splitio-browserjs": "^0.14.0",
"@splitsoftware/splitio-browserjs": "^0.10.1",
"@types/rox-browser": "^5.0.7",
"change-case": "^4.1.2",
"class-validator": "^0.14.1",
@ -56,7 +54,7 @@
"clsx": "^1.2.1",
"eventemitter3": "^5.0.1",
"events": "^3.3.0",
"express": "4.21.2",
"express": "4.19.2",
"express-validator": "^7.0.1",
"flagsmith": "^3.21.0",
"flagsmith-nodejs": "^3.2.0",
@ -66,18 +64,18 @@
"pino-http": "^9.0.0",
"pino-pretty": "^11.0.0",
"react-router-dom": "^6.21.1",
"reflect-metadata": "^0.2.0",
"reflect-metadata": "^0.1.14",
"rox-browser": "^5.4.9",
"rox-node": "^5.4.9",
"rxjs": "^7.8.0"
},
"devDependencies": {
"@babel/preset-react": "^7.23.3",
"@emotion/react": "11.14.0",
"@emotion/styled": "11.14.0",
"@emotion/react": "11.11.4",
"@emotion/styled": "11.11.5",
"@mui/material": "^5.15.2",
"@nestjs/schematics": "10.2.3",
"@nestjs/testing": "10.4.15",
"@nestjs/schematics": "10.1.1",
"@nestjs/testing": "10.3.8",
"@nrwl/tao": "17.3.2",
"@nx/devkit": "17.3.2",
"@nx/eslint-plugin": "17.3.2",
@ -98,9 +96,9 @@
"@types/events": "^3.0.3",
"@types/express": "4.17.21",
"@types/jest": "^29.5.11",
"@types/node": "18.19.68",
"@types/react": "18.3.18",
"@types/react-dom": "18.3.5",
"@types/node": "18.19.31",
"@types/react": "18.2.79",
"@types/react-dom": "18.2.25",
"@types/react-json-editor-ajrm": "^2.5.6",
"@types/react-modal": "^3.16.3",
"@types/rox-node": "^5.0.5",
@ -110,12 +108,12 @@
"babel-jest": "^29.7.0",
"core-js": "^3.35.0",
"css-loader": "^6.8.1",
"eslint": "8.57.1",
"eslint": "8.57.0",
"eslint-config-prettier": "9.1.0",
"eslint-plugin-import": "2.31.0",
"eslint-plugin-jsx-a11y": "6.10.2",
"eslint-plugin-react": "7.37.2",
"eslint-plugin-react-hooks": "4.6.2",
"eslint-plugin-import": "2.29.1",
"eslint-plugin-jsx-a11y": "6.8.0",
"eslint-plugin-react": "7.34.1",
"eslint-plugin-react-hooks": "4.6.0",
"jest": "^29.7.0",
"jest-environment-jsdom": "^29.7.0",
"json-schema-to-typescript": "^11.0.5",
@ -127,26 +125,18 @@
"react-json-editor-ajrm": "^2.5.14",
"react-json-view": "^1.21.3",
"react-modal": "^3.16.1",
"react-refresh": "^0.16.0",
"regenerator-runtime": "^0.14.0",
"react-refresh": "^0.14.0",
"regenerator-runtime": "^0.13.11",
"style-loader": "^3.3.3",
"styled-components": "5.3.11",
"stylus": "^0.64.0",
"stylus": "^0.59.0",
"stylus-loader": "^7.1.3",
"ts-jest": "29.2.5",
"ts-jest": "29.1.2",
"ts-node": "10.9.2",
"tslib": "^2.6.2",
"typescript": "5.7.2",
"typescript": "5.4.5",
"url-loader": "^4.1.1",
"webpack": "5.97.1",
"webpack": "5.91.0",
"webpack-merge": "^5.10.0"
},
"overrides": {
"braces": ">=3.0.3",
"ws": ">=8.17.1",
"@grpc/grpc-js": ">=1.10.9",
"@openfeature/config-cat-provider": {
"@openfeature/server-sdk": "1.13.4"
}
}
}

View File

@ -1,4 +1,4 @@
FROM node:20.18-bullseye AS builder
FROM node:20.12-bullseye AS builder
WORKDIR /tmp/playground/
COPY package*.json tsconfig*.json nx.json babel.config.json ./
COPY schemas/ ./schemas/

View File

@ -1,4 +1,4 @@
FROM node:20.18-bullseye-slim AS builder
FROM node:20.12-bullseye-slim AS builder
WORKDIR /tmp/playground/
COPY package*.json tsconfig*.json nx.json babel.config.json ./
RUN npm ci

View File

@ -15,7 +15,6 @@ import { OpenFeatureLogger } from '@openfeature/extra';
import {
AvailableProvider,
CB_PROVIDER_ID,
CONFIGCAT_PROVIDER_ID,
ENV_PROVIDER_ID,
FLAGD_OFREP_PROVIDER_ID,
FLAGD_PROVIDER_ID,
@ -29,8 +28,6 @@ import {
} from '@openfeature/utils';
import { OFREPProvider } from '@openfeature/ofrep-provider';
import { FliptProvider } from '@openfeature/flipt-provider';
import { ConfigCatProvider } from '@openfeature/config-cat-provider';
import { PollingMode } from 'configcat-node';
type ProviderMap = Record<
ProviderId,
@ -174,18 +171,6 @@ export class ProviderService {
available: () => !!process.env.FLIPT_URL,
url: process.env.FLIPT_WEB_URL,
},
[CONFIGCAT_PROVIDER_ID]: {
factory: () => {
const sdkKey = process.env.CONFIGCAT_SDK_KEY;
if (!sdkKey) {
throw new Error('"CONFIGCAT_SDK_KEY" must be defined.');
} else {
return ConfigCatProvider.create(sdkKey, PollingMode.AutoPoll, { pollIntervalSeconds: 5 });
}
},
available: () => !!process.env.CONFIGCAT_SDK_KEY && !!process.env.CONFIGCAT_SDK_KEY_WEB,
webCredential: process.env.CONFIGCAT_SDK_KEY_WEB,
},
};
constructor() {

View File

@ -3,7 +3,6 @@ import { FlagdWebProvider } from '@openfeature/flagd-web-provider';
import {
AvailableProvider,
CB_PROVIDER_ID,
CONFIGCAT_PROVIDER_ID,
FLAGD_OFREP_PROVIDER_ID,
FLAGD_PROVIDER_ID,
FLAGSMITH_PROVIDER_ID,
@ -36,7 +35,6 @@ import { JSON_UPDATED } from './types';
import { getData } from './utils';
import { GoFeatureFlagWebProvider } from '@openfeature/go-feature-flag-web-provider';
import { FliptWebProvider } from '@openfeature/flipt-web-provider';
import { ConfigCatWebProvider } from '@openfeature/config-cat-web-provider';
type ProviderMap = Record<
string,
@ -140,11 +138,6 @@ export class Demos extends Component<
return new FliptWebProvider('default', { url: fliptConfig?.url });
},
},
[CONFIGCAT_PROVIDER_ID]: {
factory: () => {
return ConfigCatWebProvider.create(this.getProviderCredential(CONFIGCAT_PROVIDER_ID), { pollIntervalSeconds: 5 });
},
},
};
constructor(props: Record<string, never>) {

View File

@ -9,7 +9,6 @@ export const CB_PROVIDER_ID = 'cloudbees';
export const FLAGSMITH_PROVIDER_ID = 'flagsmith';
export const HARNESS_PROVIDER_ID = 'harness';
export const FLIPT_PROVIDER_ID = 'flipt';
export const CONFIGCAT_PROVIDER_ID = 'configcat';
export type ProviderId =
| typeof ENV_PROVIDER_ID
@ -22,8 +21,7 @@ export type ProviderId =
| typeof CB_PROVIDER_ID
| typeof FLAGSMITH_PROVIDER_ID
| typeof HARNESS_PROVIDER_ID
| typeof FLIPT_PROVIDER_ID
| typeof CONFIGCAT_PROVIDER_ID;
| typeof FLIPT_PROVIDER_ID;
export interface AvailableProvider {
id: ProviderId;

View File

@ -1,8 +1,15 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"description": "Default preset for use with OpenFeature's repos",
"extends": [ "github>open-feature/community-tooling" ],
"extends": ["config:recommended"],
"semanticCommits": "enabled",
"automergeType": "branch",
"configMigration": true,
"dependencyDashboard": true,
"prCreation": "not-pending",
"rebaseWhen": "behind-base-branch",
"platformAutomerge": true,
"platformCommit": true,
"npm": {
"packageRules": [
{
@ -13,10 +20,6 @@
"matchPackagePatterns": ["@opentelemtry/"],
"groupName": "OpenTelemetry"
},
{
"matchPackagePatterns": ["@openfeature/"],
"groupName": "OpenFeature"
},
{
"matchPackagePatterns": ["@typescript-eslint", "eslint"],
"groupName": "ESLint"
@ -36,4 +39,16 @@
}
]
},
"packageRules": [
{
"description": "Automerge non-major updates",
"matchUpdateTypes": ["minor", "patch"],
"matchCurrentVersion": "!/^0/",
"automerge": true
},
{
"matchManagers": ["github-actions"],
"automerge": true
}
]
}