@loglune/sdk
v1.0.0
Published
Loglune evaluation client: send an evaluation context, get the feature-flag results and the record a bug report carries. Includes an OpenFeature provider and a CI replay-regression harness.
Downloads
32
Readme
@loglune/sdk
The evaluation client for Loglune: send an evaluation context, get back every feature flag's result (or one flag's) and the evaluation record a bug report carries. The Loglune server evaluates; this package sends the request and returns the server's answer.
Install
Requires Node.js 22 or later (or any runtime with a global fetch).
npm install @loglune/sdkEvaluate
Mint an SDK key under SDK keys at https://loglune.com/app/author.
import { createLogluneClient } from '@loglune/sdk';
const loglune = createLogluneClient({ sdkKey: process.env.LOGLUNE_SDK_KEY });
const { result, record } = await loglune.evaluateOne('new-checkout', {
key: userId,
attributes: { plan: 'pro' }
});| Option | Required | Meaning |
|---|---|---|
| sdkKey | yes | the SDK key |
| version | no | a published version to evaluate (replay); absent evaluates the current version |
| baseUrl | no | the Loglune origin (default https://loglune.com) |
| fetch | no | a fetch implementation (default the global fetch) |
| Call | Returns |
|---|---|
| evaluateAll(context) | { results, record }, one result per flag |
| evaluateOne(flagKey, context) | { result, record }; result.reason.kind is flagNotFound when the version lacks the flag |
Attach record to a bug report: it holds the version, an opaque context key (never the raw key), the results, the instant and the attribute names (never their values).
Errors
A refusal throws LogluneError with the fields of the server's answer: status, error, reason, hint (what to do next), retryAfter and issues (the fields to fix). A network failure throws the fetch error.
OpenFeature
import { OpenFeature } from '@openfeature/server-sdk';
import { createLogluneClient } from '@loglune/sdk';
import { createLogluneProvider } from '@loglune/sdk/openfeature';
await OpenFeature.setProviderAndWait(
createLogluneProvider({ client: createLogluneClient({ sdkKey: process.env.LOGLUNE_SDK_KEY }) })
);@openfeature/server-sdk is an optional peer dependency; install it only to use this entry.
CI replay regression
import { runReplayRegression } from '@loglune/sdk/ci-replay';
const report = await runReplayRegression(
{ sdkKey: process.env.LOGLUNE_SDK_KEY, version: 42, at: '2026-08-22T14:07:00Z' },
[{ context: { key: 'user-1', attributes: { plan: 'pro' } }, expect: { 'new-checkout': 'on' } }]
);
if (!report.ok) process.exit(1);Each case is evaluated against the pinned version at at (unless the case sets evaluatedAt); report.ok is false when any flag resolved to another variation or is missing.
License
MIT. The Loglune service itself is governed by https://loglune.com/terms.
