Kaiten
API ReferenceOpenFeature (OFREP)

Provider Configuration

Configure OpenFeature SDKs to use Kaiten as your flag provider.

Provider Configuration

Use Kaiten as your feature flag provider with any OpenFeature SDK via OFREP.

Go

import (
    "github.com/open-feature/go-sdk/openfeature"
    "github.com/open-feature/go-sdk-contrib/providers/ofrep"
)

func main() {
    provider := ofrep.NewProvider("http://localhost:6000/api", ofrep.WithHeaders(map[string]string{
        "Authorization": "Bearer ksh_your_token_here",
    }))

    openfeature.SetProvider(provider)

    client := openfeature.NewClient("my-app")

    value, err := client.BooleanValue(
        context.Background(),
        "beta-feature",
        false, // default value
        openfeature.NewEvaluationContext("", map[string]interface{}{
            "tenantSlug": "sakura-tokyo",
        }),
    )
}

Python

from openfeature import api
from openfeature.contrib.provider.ofrep import OFREPProvider

provider = OFREPProvider(
    base_url="http://localhost:6000/api",
    headers={"Authorization": "Bearer ksh_your_token_here"},
)
api.set_provider(provider)

client = api.get_client("my-app")

value = client.get_boolean_value(
    "beta-feature",
    default_value=False,
    evaluation_context={"tenantSlug": "sakura-tokyo"},
)

JavaScript / TypeScript

import { OpenFeature } from '@openfeature/server-sdk';
import { OFREPProvider } from '@openfeature/ofrep-provider';

const provider = new OFREPProvider({
  baseUrl: 'http://localhost:6000/api',
  headers: {
    Authorization: 'Bearer ksh_your_token_here',
  },
});

OpenFeature.setProvider(provider);
const client = OpenFeature.getClient('my-app');

const value = await client.getBooleanValue('beta-feature', false, {
  tenantSlug: 'sakura-tokyo',
});

Key Points

  • The OFREP base URL is your Kaiten API URL: http://localhost:6000/api (local) or https://api.kaiten.sh/api (cloud)
  • Authentication is via ksh_* API tokens in the Authorization header
  • The token must have read:feature_flags scope
  • Context variables are passed as evaluation context and used in CEL targeting rules

On this page