From 8867447d1251ce81af6d43b226b66f81844ffb3d Mon Sep 17 00:00:00 2001 From: Aaron Silverman Date: Mon, 26 Jan 2026 19:56:19 -0500 Subject: [PATCH 1/5] Update minimum Node.js version to 20.x - Remove Node 18 from CI matrix (EOL) - Add Node 24 and 26 to CI matrix - Update engines.node to >=20.x in package.json - Update @types/node resolution to ^20.0.0 - Add Requirements section to README Co-Authored-By: Claude Opus 4.5 --- .github/workflows/lint-test-sdk.yml | 4 ++-- .github/workflows/publish.yml | 2 +- README.md | 9 ++++++++- node-server-sdk.api.md | 21 ++++++++++++++++++++- package.json | 4 ++-- yarn.lock | 18 +++++++++--------- 6 files changed, 42 insertions(+), 16 deletions(-) diff --git a/.github/workflows/lint-test-sdk.yml b/.github/workflows/lint-test-sdk.yml index c4096a6..0d18a59 100644 --- a/.github/workflows/lint-test-sdk.yml +++ b/.github/workflows/lint-test-sdk.yml @@ -25,7 +25,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [ '18', '20', '22', '23' ] + node-version: [ '20', '22', '24', '26' ] steps: - uses: actions/checkout@v3 with: @@ -62,7 +62,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [ '18', '20', '22', '23' ] + node-version: [ '20', '22', '24', '26' ] steps: - uses: actions/checkout@v3 with: diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 2c2ad37..da1b4b9 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -10,7 +10,7 @@ jobs: fail-fast: false matrix: platform: ['linux'] - node-version: [ '18', '20', '22', '23' ] + node-version: [ '20', '22', '24', '26' ] steps: - uses: actions/checkout@v3 diff --git a/README.md b/README.md index b885625..76ff31b 100644 --- a/README.md +++ b/README.md @@ -8,10 +8,17 @@ - Feature gates - Kill switches +- Dynamic configuration - Progressive rollouts - A/B/n experiments +- Holdouts - Mutually exclusive experiments (Layers) -- Dynamic configuration +- Switchback experiments +- Contextual Multi-armed bandits + +## Requirements + +- Node.js version 20.x or later ## Installation diff --git a/node-server-sdk.api.md b/node-server-sdk.api.md index 9f5b0b5..c7b1825 100644 --- a/node-server-sdk.api.md +++ b/node-server-sdk.api.md @@ -30,6 +30,12 @@ export { ContextAttributes } export { EppoAssignmentLogger } +// @public +export function getBanditsConfiguration(): string; + +// @public +export function getFlagsConfiguration(): string | null; + // @public export function getInstance(): EppoClient; @@ -49,6 +55,7 @@ export interface IClientConfig { assignmentLogger: IAssignmentLogger; banditLogger?: IBanditLogger; baseUrl?: string; + // @deprecated eventTracking?: { batchSize?: number; deliveryIntervalMs?: number; @@ -70,9 +77,21 @@ export interface IClientConfig { // @public export function init(config: IClientConfig): Promise; -// @public (undocumented) +// @public +export interface IOfflineClientConfig { + assignmentLogger?: IAssignmentLogger; + banditLogger?: IBanditLogger; + banditsConfiguration?: string; + flagsConfiguration: string; + throwOnFailedInitialization?: boolean; +} + +// @public @deprecated (undocumented) export const NO_OP_EVENT_DISPATCHER: EventDispatcher; +// @public +export function offlineInit(config: IOfflineClientConfig): EppoClient; + // (No @packageDocumentation comment for this package) ``` diff --git a/package.json b/package.json index 3823439..96742db 100644 --- a/package.json +++ b/package.json @@ -55,12 +55,12 @@ "typescript": "^5.4.5" }, "engines": { - "node": ">=18.x", + "node": ">=20.x", "yarn": "1.x" }, "packageManager": "yarn@1.22.22+sha512.a6b2f7906b721bba3d67d4aff083df04dad64c399707841b7acf00f6b133b7ac24255f2652fa22ae3534329dc6180534e98d17432037ff6fd140556e2bb3137e", "resolutions": { "minimatch": "^3.1.2", - "@types/node": "^18.19.0" + "@types/node": "^20.0.0" } } diff --git a/yarn.lock b/yarn.lock index 18a1bd3..82d3604 100644 --- a/yarn.lock +++ b/yarn.lock @@ -905,12 +905,12 @@ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.5.tgz#1ef302e01cf7d2b5a0fa526790c9123bf1d06690" integrity sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w== -"@types/node@*", "@types/node@^18.19.0": - version "18.19.130" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.130.tgz#da4c6324793a79defb7a62cba3947ec5add00d59" - integrity sha512-GRaXQx6jGfL8sKfaIDD6OupbIHBr9jv7Jnaml9tB7l4v068PAOXqfcujMMo5PhbIs6ggR1XODELqahT2R8v0fg== +"@types/node@*", "@types/node@^20.0.0": + version "20.19.30" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.19.30.tgz#84fa87498ade5cd2b6ba8f8eec01d3b138ca60d0" + integrity sha512-WJtwWJu7UdlvzEAUm484QNg5eAoq5QR08KDNx7g45Usrs2NtOPiX8ugDqmKdXkyL03rBqU5dYNYVQetEpBHq2g== dependencies: - undici-types "~5.26.4" + undici-types "~6.21.0" "@types/qs@*": version "6.14.0" @@ -4999,10 +4999,10 @@ unbox-primitive@^1.1.0: has-symbols "^1.1.0" which-boxed-primitive "^1.1.1" -undici-types@~5.26.4: - version "5.26.5" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" - integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== +undici-types@~6.21.0: + version "6.21.0" + resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" + integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== universalify@^2.0.0: version "2.0.1" From af8f720a16d6a7cc843fdee9d98a10b7447d3802 Mon Sep 17 00:00:00 2001 From: Aaron Silverman Date: Mon, 26 Jan 2026 20:00:15 -0500 Subject: [PATCH 2/5] Fix Node version matrix: replace 26 with 23 Node 26 is not released yet. Use 20, 22, 23, 24 instead. Co-Authored-By: Claude Opus 4.5 --- .github/workflows/lint-test-sdk.yml | 4 ++-- .github/workflows/publish.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/lint-test-sdk.yml b/.github/workflows/lint-test-sdk.yml index 0d18a59..b054923 100644 --- a/.github/workflows/lint-test-sdk.yml +++ b/.github/workflows/lint-test-sdk.yml @@ -25,7 +25,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [ '20', '22', '24', '26' ] + node-version: [ '20', '22', '23', '24' ] steps: - uses: actions/checkout@v3 with: @@ -62,7 +62,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [ '20', '22', '24', '26' ] + node-version: [ '20', '22', '23', '24' ] steps: - uses: actions/checkout@v3 with: diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index da1b4b9..ea3d945 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -10,7 +10,7 @@ jobs: fail-fast: false matrix: platform: ['linux'] - node-version: [ '20', '22', '24', '26' ] + node-version: [ '20', '22', '23', '24' ] steps: - uses: actions/checkout@v3 From db164fafa9294d3f1747e793b687b76ad626eeda Mon Sep 17 00:00:00 2001 From: Aaron Silverman Date: Mon, 26 Jan 2026 20:00:58 -0500 Subject: [PATCH 3/5] Drop Node 23 from CI matrix Keep only LTS versions: 20, 22, 24. Co-Authored-By: Claude Opus 4.5 --- .github/workflows/lint-test-sdk.yml | 4 ++-- .github/workflows/publish.yml | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/lint-test-sdk.yml b/.github/workflows/lint-test-sdk.yml index b054923..0d34782 100644 --- a/.github/workflows/lint-test-sdk.yml +++ b/.github/workflows/lint-test-sdk.yml @@ -25,7 +25,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [ '20', '22', '23', '24' ] + node-version: [ '20', '22', '24' ] steps: - uses: actions/checkout@v3 with: @@ -62,7 +62,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [ '20', '22', '23', '24' ] + node-version: [ '20', '22', '24' ] steps: - uses: actions/checkout@v3 with: diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index ea3d945..46027af 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -10,7 +10,7 @@ jobs: fail-fast: false matrix: platform: ['linux'] - node-version: [ '20', '22', '23', '24' ] + node-version: [ '20', '22', '24' ] steps: - uses: actions/checkout@v3 From 812d6ba6760c870a69048aa7383591b029248153 Mon Sep 17 00:00:00 2001 From: Aaron Silverman Date: Tue, 27 Jan 2026 08:09:32 -0500 Subject: [PATCH 4/5] Bump major version to 4.0.0 BREAKING CHANGE: Minimum Node.js version is now 20.x (was 18.x). Co-Authored-By: Claude Opus 4.5 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 96742db..f315f4d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@eppo/node-server-sdk", - "version": "3.13.0", + "version": "4.0.0", "description": "Eppo node server SDK", "main": "dist/index.js", "files": [ From 38d32422531a1ac181eb21e76e77f8a9b6a06b54 Mon Sep 17 00:00:00 2001 From: Aaron Silverman Date: Tue, 27 Jan 2026 08:29:28 -0500 Subject: [PATCH 5/5] Add docs for offline init APIs, fix line endings - Add generated docs for getFlagsConfiguration, getBanditsConfiguration, offlineInit, and IOfflineClientConfig - Configure .gitattributes to enforce LF line endings for docs - Set api-extractor newlineKind to lf Co-Authored-By: Claude Opus 4.5 --- .gitattributes | 1 + api-extractor.json | 2 +- docs/index.md | 60 +- ...node-server-sdk.getbanditsconfiguration.md | 19 + docs/node-server-sdk.getflagsconfiguration.md | 19 + docs/node-server-sdk.getinstance.md | 38 +- docs/node-server-sdk.iclientconfig.apikey.md | 26 +- ...rver-sdk.iclientconfig.assignmentlogger.md | 26 +- ...e-server-sdk.iclientconfig.banditlogger.md | 26 +- docs/node-server-sdk.iclientconfig.baseurl.md | 26 +- ...-server-sdk.iclientconfig.eventtracking.md | 47 +- docs/node-server-sdk.iclientconfig.md | 534 +++++++++--------- ....iclientconfig.numinitialrequestretries.md | 26 +- ...sdk.iclientconfig.numpollrequestretries.md | 26 +- ...entconfig.pollafterfailedinitialization.md | 26 +- ...onfig.pollaftersuccessfulinitialization.md | 26 +- ...ver-sdk.iclientconfig.pollingintervalms.md | 26 +- ...rver-sdk.iclientconfig.requesttimeoutms.md | 26 +- ...lientconfig.throwonfailedinitialization.md | 26 +- docs/node-server-sdk.init.md | 108 ++-- ...k.iofflineclientconfig.assignmentlogger.md | 13 + ...r-sdk.iofflineclientconfig.banditlogger.md | 13 + ...fflineclientconfig.banditsconfiguration.md | 22 + ...iofflineclientconfig.flagsconfiguration.md | 24 + docs/node-server-sdk.iofflineclientconfig.md | 154 +++++ ...lientconfig.throwonfailedinitialization.md | 13 + docs/node-server-sdk.md | 230 +++++--- .../node-server-sdk.no_op_event_dispatcher.md | 27 +- docs/node-server-sdk.offlineinit.md | 56 ++ 29 files changed, 1027 insertions(+), 639 deletions(-) create mode 100644 docs/node-server-sdk.getbanditsconfiguration.md create mode 100644 docs/node-server-sdk.getflagsconfiguration.md create mode 100644 docs/node-server-sdk.iofflineclientconfig.assignmentlogger.md create mode 100644 docs/node-server-sdk.iofflineclientconfig.banditlogger.md create mode 100644 docs/node-server-sdk.iofflineclientconfig.banditsconfiguration.md create mode 100644 docs/node-server-sdk.iofflineclientconfig.flagsconfiguration.md create mode 100644 docs/node-server-sdk.iofflineclientconfig.md create mode 100644 docs/node-server-sdk.iofflineclientconfig.throwonfailedinitialization.md create mode 100644 docs/node-server-sdk.offlineinit.md diff --git a/.gitattributes b/.gitattributes index 5fc4d97..7827a26 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,2 @@ *.json linguist-language=JSON-with-Comments +docs/*.md text eol=lf diff --git a/api-extractor.json b/api-extractor.json index 0647669..5b2638f 100644 --- a/api-extractor.json +++ b/api-extractor.json @@ -266,7 +266,7 @@ * * DEFAULT VALUE: "crlf" */ - // "newlineKind": "crlf", + "newlineKind": "lf", /** * Configures how API Extractor reports error and warning messages produced during analysis. diff --git a/docs/index.md b/docs/index.md index 9bb7118..e5c4af6 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,30 +1,30 @@ - - -[Home](./index.md) - -## API Reference - -## Packages - - - -
- -Package - - - - -Description - - -
- -[@eppo/node-server-sdk](./node-server-sdk.md) - - - - - -
- + + +[Home](./index.md) + +## API Reference + +## Packages + + + +
+ +Package + + + + +Description + + +
+ +[@eppo/node-server-sdk](./node-server-sdk.md) + + + + + +
+ diff --git a/docs/node-server-sdk.getbanditsconfiguration.md b/docs/node-server-sdk.getbanditsconfiguration.md new file mode 100644 index 0000000..aaabba1 --- /dev/null +++ b/docs/node-server-sdk.getbanditsconfiguration.md @@ -0,0 +1,19 @@ + + +[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [getBanditsConfiguration](./node-server-sdk.getbanditsconfiguration.md) + +## getBanditsConfiguration() function + +Returns the current bandits configuration as a JSON string. This can be used together with getFlagsConfiguration() to bootstrap another SDK instance using offlineInit(). + +**Signature:** + +```typescript +export declare function getBanditsConfiguration(): string; +``` +**Returns:** + +string + +JSON string containing the bandits configuration + diff --git a/docs/node-server-sdk.getflagsconfiguration.md b/docs/node-server-sdk.getflagsconfiguration.md new file mode 100644 index 0000000..be0fd3e --- /dev/null +++ b/docs/node-server-sdk.getflagsconfiguration.md @@ -0,0 +1,19 @@ + + +[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [getFlagsConfiguration](./node-server-sdk.getflagsconfiguration.md) + +## getFlagsConfiguration() function + +Reconstructs the current flags configuration as a JSON string. This can be used to bootstrap another SDK instance using offlineInit(). + +**Signature:** + +```typescript +export declare function getFlagsConfiguration(): string | null; +``` +**Returns:** + +string \| null + +JSON string containing the flags configuration, or null if not initialized + diff --git a/docs/node-server-sdk.getinstance.md b/docs/node-server-sdk.getinstance.md index dbbc128..6309761 100644 --- a/docs/node-server-sdk.getinstance.md +++ b/docs/node-server-sdk.getinstance.md @@ -1,19 +1,19 @@ - - -[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [getInstance](./node-server-sdk.getinstance.md) - -## getInstance() function - -Used to access a singleton SDK client instance. Use the method after calling init() to initialize the client. - -**Signature:** - -```typescript -export declare function getInstance(): EppoClient; -``` -**Returns:** - -EppoClient - -a singleton client instance or throws an Error if init() has not been called - + + +[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [getInstance](./node-server-sdk.getinstance.md) + +## getInstance() function + +Used to access a singleton SDK client instance. Use the method after calling init() to initialize the client. + +**Signature:** + +```typescript +export declare function getInstance(): EppoClient; +``` +**Returns:** + +EppoClient + +a singleton client instance or throws an Error if init() has not been called + diff --git a/docs/node-server-sdk.iclientconfig.apikey.md b/docs/node-server-sdk.iclientconfig.apikey.md index b73fc24..3dcaaf5 100644 --- a/docs/node-server-sdk.iclientconfig.apikey.md +++ b/docs/node-server-sdk.iclientconfig.apikey.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IClientConfig](./node-server-sdk.iclientconfig.md) > [apiKey](./node-server-sdk.iclientconfig.apikey.md) - -## IClientConfig.apiKey property - -Eppo SDK key - -**Signature:** - -```typescript -apiKey: string; -``` + + +[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IClientConfig](./node-server-sdk.iclientconfig.md) > [apiKey](./node-server-sdk.iclientconfig.apikey.md) + +## IClientConfig.apiKey property + +Eppo SDK key + +**Signature:** + +```typescript +apiKey: string; +``` diff --git a/docs/node-server-sdk.iclientconfig.assignmentlogger.md b/docs/node-server-sdk.iclientconfig.assignmentlogger.md index 86d0c0f..b68f35f 100644 --- a/docs/node-server-sdk.iclientconfig.assignmentlogger.md +++ b/docs/node-server-sdk.iclientconfig.assignmentlogger.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IClientConfig](./node-server-sdk.iclientconfig.md) > [assignmentLogger](./node-server-sdk.iclientconfig.assignmentlogger.md) - -## IClientConfig.assignmentLogger property - -Provide a logging implementation to send variation assignments to your data warehouse. - -**Signature:** - -```typescript -assignmentLogger: IAssignmentLogger; -``` + + +[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IClientConfig](./node-server-sdk.iclientconfig.md) > [assignmentLogger](./node-server-sdk.iclientconfig.assignmentlogger.md) + +## IClientConfig.assignmentLogger property + +Provide a logging implementation to send variation assignments to your data warehouse. + +**Signature:** + +```typescript +assignmentLogger: IAssignmentLogger; +``` diff --git a/docs/node-server-sdk.iclientconfig.banditlogger.md b/docs/node-server-sdk.iclientconfig.banditlogger.md index 7c106db..a80ff55 100644 --- a/docs/node-server-sdk.iclientconfig.banditlogger.md +++ b/docs/node-server-sdk.iclientconfig.banditlogger.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IClientConfig](./node-server-sdk.iclientconfig.md) > [banditLogger](./node-server-sdk.iclientconfig.banditlogger.md) - -## IClientConfig.banditLogger property - -Logging implementation to send bandit actions to your data warehouse - -**Signature:** - -```typescript -banditLogger?: IBanditLogger; -``` + + +[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IClientConfig](./node-server-sdk.iclientconfig.md) > [banditLogger](./node-server-sdk.iclientconfig.banditlogger.md) + +## IClientConfig.banditLogger property + +Logging implementation to send bandit actions to your data warehouse + +**Signature:** + +```typescript +banditLogger?: IBanditLogger; +``` diff --git a/docs/node-server-sdk.iclientconfig.baseurl.md b/docs/node-server-sdk.iclientconfig.baseurl.md index 1098a49..e6cbbc2 100644 --- a/docs/node-server-sdk.iclientconfig.baseurl.md +++ b/docs/node-server-sdk.iclientconfig.baseurl.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IClientConfig](./node-server-sdk.iclientconfig.md) > [baseUrl](./node-server-sdk.iclientconfig.baseurl.md) - -## IClientConfig.baseUrl property - -Base URL of the Eppo API. Clients should use the default setting in most cases. - -**Signature:** - -```typescript -baseUrl?: string; -``` + + +[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IClientConfig](./node-server-sdk.iclientconfig.md) > [baseUrl](./node-server-sdk.iclientconfig.baseurl.md) + +## IClientConfig.baseUrl property + +Base URL of the Eppo API. Clients should use the default setting in most cases. + +**Signature:** + +```typescript +baseUrl?: string; +``` diff --git a/docs/node-server-sdk.iclientconfig.eventtracking.md b/docs/node-server-sdk.iclientconfig.eventtracking.md index 1ecfde9..7ee02ae 100644 --- a/docs/node-server-sdk.iclientconfig.eventtracking.md +++ b/docs/node-server-sdk.iclientconfig.eventtracking.md @@ -1,21 +1,26 @@ - - -[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IClientConfig](./node-server-sdk.iclientconfig.md) > [eventTracking](./node-server-sdk.iclientconfig.eventtracking.md) - -## IClientConfig.eventTracking property - -Configuration settings for the event dispatcher - -**Signature:** - -```typescript -eventTracking?: { - batchSize?: number; - deliveryIntervalMs?: number; - enabled?: boolean; - maxQueueSize?: number; - maxRetries?: number; - maxRetryDelayMs?: number; - retryIntervalMs?: number; - }; -``` + + +[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IClientConfig](./node-server-sdk.iclientconfig.md) > [eventTracking](./node-server-sdk.iclientconfig.eventtracking.md) + +## IClientConfig.eventTracking property + +> Warning: This API is now obsolete. +> +> Eppo has discontinued eventing support. Event tracking will be handled by Datadog SDKs. +> + +Configuration settings for the event dispatcher. + +**Signature:** + +```typescript +eventTracking?: { + batchSize?: number; + deliveryIntervalMs?: number; + enabled?: boolean; + maxQueueSize?: number; + maxRetries?: number; + maxRetryDelayMs?: number; + retryIntervalMs?: number; + }; +``` diff --git a/docs/node-server-sdk.iclientconfig.md b/docs/node-server-sdk.iclientconfig.md index be3bda8..69648c9 100644 --- a/docs/node-server-sdk.iclientconfig.md +++ b/docs/node-server-sdk.iclientconfig.md @@ -1,267 +1,267 @@ - - -[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IClientConfig](./node-server-sdk.iclientconfig.md) - -## IClientConfig interface - -Configuration used for initializing the Eppo client - -**Signature:** - -```typescript -export interface IClientConfig -``` - -## Properties - - - - - - - - - - - - - - -
- -Property - - - - -Modifiers - - - - -Type - - - - -Description - - -
- -[apiKey](./node-server-sdk.iclientconfig.apikey.md) - - - - - - - -string - - - - -Eppo SDK key - - -
- -[assignmentLogger](./node-server-sdk.iclientconfig.assignmentlogger.md) - - - - - - - -IAssignmentLogger - - - - -Provide a logging implementation to send variation assignments to your data warehouse. - - -
- -[banditLogger?](./node-server-sdk.iclientconfig.banditlogger.md) - - - - - - - -IBanditLogger - - - - -_(Optional)_ Logging implementation to send bandit actions to your data warehouse - - -
- -[baseUrl?](./node-server-sdk.iclientconfig.baseurl.md) - - - - - - - -string - - - - -_(Optional)_ Base URL of the Eppo API. Clients should use the default setting in most cases. - - -
- -[eventTracking?](./node-server-sdk.iclientconfig.eventtracking.md) - - - - - - - -{ batchSize?: number; deliveryIntervalMs?: number; enabled?: boolean; maxQueueSize?: number; maxRetries?: number; maxRetryDelayMs?: number; retryIntervalMs?: number; } - - - - -_(Optional)_ Configuration settings for the event dispatcher - - -
- -[numInitialRequestRetries?](./node-server-sdk.iclientconfig.numinitialrequestretries.md) - - - - - - - -number - - - - -_(Optional)_ Number of additional times the initial configuration request will be attempted if it fails. This is the request servers typically synchronously wait for completion. A small wait will be done between requests. (Default: 1) - - -
- -[numPollRequestRetries?](./node-server-sdk.iclientconfig.numpollrequestretries.md) - - - - - - - -number - - - - -_(Optional)_ Number of additional times polling for updated configurations will be attempted before giving up. Polling is done after a successful initial request. Subsequent attempts are done using an exponential backoff. (Default: 7) - - -
- -[pollAfterFailedInitialization?](./node-server-sdk.iclientconfig.pollafterfailedinitialization.md) - - - - - - - -boolean - - - - -_(Optional)_ Poll for new configurations even if the initial configuration request failed. (default: false) - - -
- -[pollAfterSuccessfulInitialization?](./node-server-sdk.iclientconfig.pollaftersuccessfulinitialization.md) - - - - - - - -boolean - - - - -_(Optional)_ Poll for new configurations (every `pollingIntervalMs`) after successfully requesting the initial configuration. (default: true) For server-side applications, this defaults to true to ensure configurations stay up-to-date for the life of the process. - - -
- -[pollingIntervalMs?](./node-server-sdk.iclientconfig.pollingintervalms.md) - - - - - - - -number - - - - -_(Optional)_ Amount of time in milliseconds to wait between API calls to refresh configuration data. Default of 30\_000 (30s). - - -
- -[requestTimeoutMs?](./node-server-sdk.iclientconfig.requesttimeoutms.md) - - - - - - - -number - - - - -_(Optional)_ Timeout in milliseconds for the HTTPS request for the experiment configuration. (Default: 5000) - - -
- -[throwOnFailedInitialization?](./node-server-sdk.iclientconfig.throwonfailedinitialization.md) - - - - - - - -boolean - - - - -_(Optional)_ Throw error if unable to fetch an initial configuration during initialization. (default: true) - - -
- + + +[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IClientConfig](./node-server-sdk.iclientconfig.md) + +## IClientConfig interface + +Configuration used for initializing the Eppo client + +**Signature:** + +```typescript +export interface IClientConfig +``` + +## Properties + + + + + + + + + + + + + + +
+ +Property + + + + +Modifiers + + + + +Type + + + + +Description + + +
+ +[apiKey](./node-server-sdk.iclientconfig.apikey.md) + + + + + + + +string + + + + +Eppo SDK key + + +
+ +[assignmentLogger](./node-server-sdk.iclientconfig.assignmentlogger.md) + + + + + + + +IAssignmentLogger + + + + +Provide a logging implementation to send variation assignments to your data warehouse. + + +
+ +[banditLogger?](./node-server-sdk.iclientconfig.banditlogger.md) + + + + + + + +IBanditLogger + + + + +_(Optional)_ Logging implementation to send bandit actions to your data warehouse + + +
+ +[baseUrl?](./node-server-sdk.iclientconfig.baseurl.md) + + + + + + + +string + + + + +_(Optional)_ Base URL of the Eppo API. Clients should use the default setting in most cases. + + +
+ +[eventTracking?](./node-server-sdk.iclientconfig.eventtracking.md) + + + + + + + +{ batchSize?: number; deliveryIntervalMs?: number; enabled?: boolean; maxQueueSize?: number; maxRetries?: number; maxRetryDelayMs?: number; retryIntervalMs?: number; } + + + + +_(Optional)_ Configuration settings for the event dispatcher. + + +
+ +[numInitialRequestRetries?](./node-server-sdk.iclientconfig.numinitialrequestretries.md) + + + + + + + +number + + + + +_(Optional)_ Number of additional times the initial configuration request will be attempted if it fails. This is the request servers typically synchronously wait for completion. A small wait will be done between requests. (Default: 1) + + +
+ +[numPollRequestRetries?](./node-server-sdk.iclientconfig.numpollrequestretries.md) + + + + + + + +number + + + + +_(Optional)_ Number of additional times polling for updated configurations will be attempted before giving up. Polling is done after a successful initial request. Subsequent attempts are done using an exponential backoff. (Default: 7) + + +
+ +[pollAfterFailedInitialization?](./node-server-sdk.iclientconfig.pollafterfailedinitialization.md) + + + + + + + +boolean + + + + +_(Optional)_ Poll for new configurations even if the initial configuration request failed. (default: false) + + +
+ +[pollAfterSuccessfulInitialization?](./node-server-sdk.iclientconfig.pollaftersuccessfulinitialization.md) + + + + + + + +boolean + + + + +_(Optional)_ Poll for new configurations (every `pollingIntervalMs`) after successfully requesting the initial configuration. (default: true) For server-side applications, this defaults to true to ensure configurations stay up-to-date for the life of the process. + + +
+ +[pollingIntervalMs?](./node-server-sdk.iclientconfig.pollingintervalms.md) + + + + + + + +number + + + + +_(Optional)_ Amount of time in milliseconds to wait between API calls to refresh configuration data. Default of 30\_000 (30s). + + +
+ +[requestTimeoutMs?](./node-server-sdk.iclientconfig.requesttimeoutms.md) + + + + + + + +number + + + + +_(Optional)_ Timeout in milliseconds for the HTTPS request for the experiment configuration. (Default: 5000) + + +
+ +[throwOnFailedInitialization?](./node-server-sdk.iclientconfig.throwonfailedinitialization.md) + + + + + + + +boolean + + + + +_(Optional)_ Throw error if unable to fetch an initial configuration during initialization. (default: true) + + +
+ diff --git a/docs/node-server-sdk.iclientconfig.numinitialrequestretries.md b/docs/node-server-sdk.iclientconfig.numinitialrequestretries.md index 615468c..5c82bb4 100644 --- a/docs/node-server-sdk.iclientconfig.numinitialrequestretries.md +++ b/docs/node-server-sdk.iclientconfig.numinitialrequestretries.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IClientConfig](./node-server-sdk.iclientconfig.md) > [numInitialRequestRetries](./node-server-sdk.iclientconfig.numinitialrequestretries.md) - -## IClientConfig.numInitialRequestRetries property - -Number of additional times the initial configuration request will be attempted if it fails. This is the request servers typically synchronously wait for completion. A small wait will be done between requests. (Default: 1) - -**Signature:** - -```typescript -numInitialRequestRetries?: number; -``` + + +[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IClientConfig](./node-server-sdk.iclientconfig.md) > [numInitialRequestRetries](./node-server-sdk.iclientconfig.numinitialrequestretries.md) + +## IClientConfig.numInitialRequestRetries property + +Number of additional times the initial configuration request will be attempted if it fails. This is the request servers typically synchronously wait for completion. A small wait will be done between requests. (Default: 1) + +**Signature:** + +```typescript +numInitialRequestRetries?: number; +``` diff --git a/docs/node-server-sdk.iclientconfig.numpollrequestretries.md b/docs/node-server-sdk.iclientconfig.numpollrequestretries.md index 638e3d3..0ad215d 100644 --- a/docs/node-server-sdk.iclientconfig.numpollrequestretries.md +++ b/docs/node-server-sdk.iclientconfig.numpollrequestretries.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IClientConfig](./node-server-sdk.iclientconfig.md) > [numPollRequestRetries](./node-server-sdk.iclientconfig.numpollrequestretries.md) - -## IClientConfig.numPollRequestRetries property - -Number of additional times polling for updated configurations will be attempted before giving up. Polling is done after a successful initial request. Subsequent attempts are done using an exponential backoff. (Default: 7) - -**Signature:** - -```typescript -numPollRequestRetries?: number; -``` + + +[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IClientConfig](./node-server-sdk.iclientconfig.md) > [numPollRequestRetries](./node-server-sdk.iclientconfig.numpollrequestretries.md) + +## IClientConfig.numPollRequestRetries property + +Number of additional times polling for updated configurations will be attempted before giving up. Polling is done after a successful initial request. Subsequent attempts are done using an exponential backoff. (Default: 7) + +**Signature:** + +```typescript +numPollRequestRetries?: number; +``` diff --git a/docs/node-server-sdk.iclientconfig.pollafterfailedinitialization.md b/docs/node-server-sdk.iclientconfig.pollafterfailedinitialization.md index 9bd8470..9e4dc15 100644 --- a/docs/node-server-sdk.iclientconfig.pollafterfailedinitialization.md +++ b/docs/node-server-sdk.iclientconfig.pollafterfailedinitialization.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IClientConfig](./node-server-sdk.iclientconfig.md) > [pollAfterFailedInitialization](./node-server-sdk.iclientconfig.pollafterfailedinitialization.md) - -## IClientConfig.pollAfterFailedInitialization property - -Poll for new configurations even if the initial configuration request failed. (default: false) - -**Signature:** - -```typescript -pollAfterFailedInitialization?: boolean; -``` + + +[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IClientConfig](./node-server-sdk.iclientconfig.md) > [pollAfterFailedInitialization](./node-server-sdk.iclientconfig.pollafterfailedinitialization.md) + +## IClientConfig.pollAfterFailedInitialization property + +Poll for new configurations even if the initial configuration request failed. (default: false) + +**Signature:** + +```typescript +pollAfterFailedInitialization?: boolean; +``` diff --git a/docs/node-server-sdk.iclientconfig.pollaftersuccessfulinitialization.md b/docs/node-server-sdk.iclientconfig.pollaftersuccessfulinitialization.md index c6dd676..58bfd32 100644 --- a/docs/node-server-sdk.iclientconfig.pollaftersuccessfulinitialization.md +++ b/docs/node-server-sdk.iclientconfig.pollaftersuccessfulinitialization.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IClientConfig](./node-server-sdk.iclientconfig.md) > [pollAfterSuccessfulInitialization](./node-server-sdk.iclientconfig.pollaftersuccessfulinitialization.md) - -## IClientConfig.pollAfterSuccessfulInitialization property - -Poll for new configurations (every `pollingIntervalMs`) after successfully requesting the initial configuration. (default: true) For server-side applications, this defaults to true to ensure configurations stay up-to-date for the life of the process. - -**Signature:** - -```typescript -pollAfterSuccessfulInitialization?: boolean; -``` + + +[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IClientConfig](./node-server-sdk.iclientconfig.md) > [pollAfterSuccessfulInitialization](./node-server-sdk.iclientconfig.pollaftersuccessfulinitialization.md) + +## IClientConfig.pollAfterSuccessfulInitialization property + +Poll for new configurations (every `pollingIntervalMs`) after successfully requesting the initial configuration. (default: true) For server-side applications, this defaults to true to ensure configurations stay up-to-date for the life of the process. + +**Signature:** + +```typescript +pollAfterSuccessfulInitialization?: boolean; +``` diff --git a/docs/node-server-sdk.iclientconfig.pollingintervalms.md b/docs/node-server-sdk.iclientconfig.pollingintervalms.md index 8f5444b..999b966 100644 --- a/docs/node-server-sdk.iclientconfig.pollingintervalms.md +++ b/docs/node-server-sdk.iclientconfig.pollingintervalms.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IClientConfig](./node-server-sdk.iclientconfig.md) > [pollingIntervalMs](./node-server-sdk.iclientconfig.pollingintervalms.md) - -## IClientConfig.pollingIntervalMs property - -Amount of time in milliseconds to wait between API calls to refresh configuration data. Default of 30\_000 (30s). - -**Signature:** - -```typescript -pollingIntervalMs?: number; -``` + + +[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IClientConfig](./node-server-sdk.iclientconfig.md) > [pollingIntervalMs](./node-server-sdk.iclientconfig.pollingintervalms.md) + +## IClientConfig.pollingIntervalMs property + +Amount of time in milliseconds to wait between API calls to refresh configuration data. Default of 30\_000 (30s). + +**Signature:** + +```typescript +pollingIntervalMs?: number; +``` diff --git a/docs/node-server-sdk.iclientconfig.requesttimeoutms.md b/docs/node-server-sdk.iclientconfig.requesttimeoutms.md index 8dbcf24..32b070e 100644 --- a/docs/node-server-sdk.iclientconfig.requesttimeoutms.md +++ b/docs/node-server-sdk.iclientconfig.requesttimeoutms.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IClientConfig](./node-server-sdk.iclientconfig.md) > [requestTimeoutMs](./node-server-sdk.iclientconfig.requesttimeoutms.md) - -## IClientConfig.requestTimeoutMs property - -Timeout in milliseconds for the HTTPS request for the experiment configuration. (Default: 5000) - -**Signature:** - -```typescript -requestTimeoutMs?: number; -``` + + +[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IClientConfig](./node-server-sdk.iclientconfig.md) > [requestTimeoutMs](./node-server-sdk.iclientconfig.requesttimeoutms.md) + +## IClientConfig.requestTimeoutMs property + +Timeout in milliseconds for the HTTPS request for the experiment configuration. (Default: 5000) + +**Signature:** + +```typescript +requestTimeoutMs?: number; +``` diff --git a/docs/node-server-sdk.iclientconfig.throwonfailedinitialization.md b/docs/node-server-sdk.iclientconfig.throwonfailedinitialization.md index ccbede8..82e8c28 100644 --- a/docs/node-server-sdk.iclientconfig.throwonfailedinitialization.md +++ b/docs/node-server-sdk.iclientconfig.throwonfailedinitialization.md @@ -1,13 +1,13 @@ - - -[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IClientConfig](./node-server-sdk.iclientconfig.md) > [throwOnFailedInitialization](./node-server-sdk.iclientconfig.throwonfailedinitialization.md) - -## IClientConfig.throwOnFailedInitialization property - -Throw error if unable to fetch an initial configuration during initialization. (default: true) - -**Signature:** - -```typescript -throwOnFailedInitialization?: boolean; -``` + + +[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IClientConfig](./node-server-sdk.iclientconfig.md) > [throwOnFailedInitialization](./node-server-sdk.iclientconfig.throwonfailedinitialization.md) + +## IClientConfig.throwOnFailedInitialization property + +Throw error if unable to fetch an initial configuration during initialization. (default: true) + +**Signature:** + +```typescript +throwOnFailedInitialization?: boolean; +``` diff --git a/docs/node-server-sdk.init.md b/docs/node-server-sdk.init.md index e3fdc00..31d2ed4 100644 --- a/docs/node-server-sdk.init.md +++ b/docs/node-server-sdk.init.md @@ -1,54 +1,54 @@ - - -[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [init](./node-server-sdk.init.md) - -## init() function - -Initializes the Eppo client with configuration parameters. This method should be called once on application startup. After invocation of this method, the SDK will poll Eppo API at regular intervals to retrieve assignment configurations. - -**Signature:** - -```typescript -export declare function init(config: IClientConfig): Promise; -``` - -## Parameters - - - -
- -Parameter - - - - -Type - - - - -Description - - -
- -config - - - - -[IClientConfig](./node-server-sdk.iclientconfig.md) - - - - -client configuration - - -
- -**Returns:** - -Promise<EppoClient> - + + +[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [init](./node-server-sdk.init.md) + +## init() function + +Initializes the Eppo client with configuration parameters. This method should be called once on application startup. After invocation of this method, the SDK will poll Eppo API at regular intervals to retrieve assignment configurations. + +**Signature:** + +```typescript +export declare function init(config: IClientConfig): Promise; +``` + +## Parameters + + + +
+ +Parameter + + + + +Type + + + + +Description + + +
+ +config + + + + +[IClientConfig](./node-server-sdk.iclientconfig.md) + + + + +client configuration + + +
+ +**Returns:** + +Promise<EppoClient> + diff --git a/docs/node-server-sdk.iofflineclientconfig.assignmentlogger.md b/docs/node-server-sdk.iofflineclientconfig.assignmentlogger.md new file mode 100644 index 0000000..459021c --- /dev/null +++ b/docs/node-server-sdk.iofflineclientconfig.assignmentlogger.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IOfflineClientConfig](./node-server-sdk.iofflineclientconfig.md) > [assignmentLogger](./node-server-sdk.iofflineclientconfig.assignmentlogger.md) + +## IOfflineClientConfig.assignmentLogger property + +Optional assignment logger for sending variation assignments to your data warehouse. Required for experiment analysis. + +**Signature:** + +```typescript +assignmentLogger?: IAssignmentLogger; +``` diff --git a/docs/node-server-sdk.iofflineclientconfig.banditlogger.md b/docs/node-server-sdk.iofflineclientconfig.banditlogger.md new file mode 100644 index 0000000..e959a7f --- /dev/null +++ b/docs/node-server-sdk.iofflineclientconfig.banditlogger.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IOfflineClientConfig](./node-server-sdk.iofflineclientconfig.md) > [banditLogger](./node-server-sdk.iofflineclientconfig.banditlogger.md) + +## IOfflineClientConfig.banditLogger property + +Optional bandit logger for sending bandit actions to your data warehouse + +**Signature:** + +```typescript +banditLogger?: IBanditLogger; +``` diff --git a/docs/node-server-sdk.iofflineclientconfig.banditsconfiguration.md b/docs/node-server-sdk.iofflineclientconfig.banditsconfiguration.md new file mode 100644 index 0000000..ffaa98a --- /dev/null +++ b/docs/node-server-sdk.iofflineclientconfig.banditsconfiguration.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IOfflineClientConfig](./node-server-sdk.iofflineclientconfig.md) > [banditsConfiguration](./node-server-sdk.iofflineclientconfig.banditsconfiguration.md) + +## IOfflineClientConfig.banditsConfiguration property + +Optional bandit models configuration JSON string as returned by the Eppo API. This should be the complete response from the bandit parameters endpoint. + +Expected format: + +```json +{ + "updatedAt": "2024-04-17T19:40:53.716Z", + "bandits": { ... } +} +``` + +**Signature:** + +```typescript +banditsConfiguration?: string; +``` diff --git a/docs/node-server-sdk.iofflineclientconfig.flagsconfiguration.md b/docs/node-server-sdk.iofflineclientconfig.flagsconfiguration.md new file mode 100644 index 0000000..cb1d4f9 --- /dev/null +++ b/docs/node-server-sdk.iofflineclientconfig.flagsconfiguration.md @@ -0,0 +1,24 @@ + + +[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IOfflineClientConfig](./node-server-sdk.iofflineclientconfig.md) > [flagsConfiguration](./node-server-sdk.iofflineclientconfig.flagsconfiguration.md) + +## IOfflineClientConfig.flagsConfiguration property + +The full flags configuration JSON string as returned by the Eppo API. This should be the complete response from the /flag-config/v1/config endpoint. + +Expected format: + +```json +{ + "createdAt": "2024-04-17T19:40:53.716Z", + "format": "SERVER", + "environment": { "name": "production" }, + "flags": { ... } +} +``` + +**Signature:** + +```typescript +flagsConfiguration: string; +``` diff --git a/docs/node-server-sdk.iofflineclientconfig.md b/docs/node-server-sdk.iofflineclientconfig.md new file mode 100644 index 0000000..1fbcebf --- /dev/null +++ b/docs/node-server-sdk.iofflineclientconfig.md @@ -0,0 +1,154 @@ + + +[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IOfflineClientConfig](./node-server-sdk.iofflineclientconfig.md) + +## IOfflineClientConfig interface + +Configuration used for offline initialization of the Eppo client. Offline initialization allows the SDK to be used without making any network requests. + +**Signature:** + +```typescript +export interface IOfflineClientConfig +``` + +## Properties + + + + + + + +
+ +Property + + + + +Modifiers + + + + +Type + + + + +Description + + +
+ +[assignmentLogger?](./node-server-sdk.iofflineclientconfig.assignmentlogger.md) + + + + + + + +IAssignmentLogger + + + + +_(Optional)_ Optional assignment logger for sending variation assignments to your data warehouse. Required for experiment analysis. + + +
+ +[banditLogger?](./node-server-sdk.iofflineclientconfig.banditlogger.md) + + + + + + + +IBanditLogger + + + + +_(Optional)_ Optional bandit logger for sending bandit actions to your data warehouse + + +
+ +[banditsConfiguration?](./node-server-sdk.iofflineclientconfig.banditsconfiguration.md) + + + + + + + +string + + + + +_(Optional)_ Optional bandit models configuration JSON string as returned by the Eppo API. This should be the complete response from the bandit parameters endpoint. + +Expected format: + +```json +{ + "updatedAt": "2024-04-17T19:40:53.716Z", + "bandits": { ... } +} +``` + + +
+ +[flagsConfiguration](./node-server-sdk.iofflineclientconfig.flagsconfiguration.md) + + + + + + + +string + + + + +The full flags configuration JSON string as returned by the Eppo API. This should be the complete response from the /flag-config/v1/config endpoint. + +Expected format: + +```json +{ + "createdAt": "2024-04-17T19:40:53.716Z", + "format": "SERVER", + "environment": { "name": "production" }, + "flags": { ... } +} +``` + + +
+ +[throwOnFailedInitialization?](./node-server-sdk.iofflineclientconfig.throwonfailedinitialization.md) + + + + + + + +boolean + + + + +_(Optional)_ Whether to throw an error if initialization fails. (default: true) If false, the client will be initialized with an empty configuration. + + +
+ diff --git a/docs/node-server-sdk.iofflineclientconfig.throwonfailedinitialization.md b/docs/node-server-sdk.iofflineclientconfig.throwonfailedinitialization.md new file mode 100644 index 0000000..5b95304 --- /dev/null +++ b/docs/node-server-sdk.iofflineclientconfig.throwonfailedinitialization.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [IOfflineClientConfig](./node-server-sdk.iofflineclientconfig.md) > [throwOnFailedInitialization](./node-server-sdk.iofflineclientconfig.throwonfailedinitialization.md) + +## IOfflineClientConfig.throwOnFailedInitialization property + +Whether to throw an error if initialization fails. (default: true) If false, the client will be initialized with an empty configuration. + +**Signature:** + +```typescript +throwOnFailedInitialization?: boolean; +``` diff --git a/docs/node-server-sdk.md b/docs/node-server-sdk.md index 90b156f..8f26e81 100644 --- a/docs/node-server-sdk.md +++ b/docs/node-server-sdk.md @@ -1,93 +1,137 @@ - - -[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) - -## node-server-sdk package - -## Functions - - - - -
- -Function - - - - -Description - - -
- -[getInstance()](./node-server-sdk.getinstance.md) - - - - -Used to access a singleton SDK client instance. Use the method after calling init() to initialize the client. - - -
- -[init(config)](./node-server-sdk.init.md) - - - - -Initializes the Eppo client with configuration parameters. This method should be called once on application startup. After invocation of this method, the SDK will poll Eppo API at regular intervals to retrieve assignment configurations. - - -
- -## Interfaces - - - -
- -Interface - - - - -Description - - -
- -[IClientConfig](./node-server-sdk.iclientconfig.md) - - - - -Configuration used for initializing the Eppo client - - -
- -## Variables - - - -
- -Variable - - - - -Description - - -
- -[NO\_OP\_EVENT\_DISPATCHER](./node-server-sdk.no_op_event_dispatcher.md) - - - - - -
- + + +[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) + +## node-server-sdk package + +## Functions + + + + + + + +
+ +Function + + + + +Description + + +
+ +[getBanditsConfiguration()](./node-server-sdk.getbanditsconfiguration.md) + + + + +Returns the current bandits configuration as a JSON string. This can be used together with getFlagsConfiguration() to bootstrap another SDK instance using offlineInit(). + + +
+ +[getFlagsConfiguration()](./node-server-sdk.getflagsconfiguration.md) + + + + +Reconstructs the current flags configuration as a JSON string. This can be used to bootstrap another SDK instance using offlineInit(). + + +
+ +[getInstance()](./node-server-sdk.getinstance.md) + + + + +Used to access a singleton SDK client instance. Use the method after calling init() to initialize the client. + + +
+ +[init(config)](./node-server-sdk.init.md) + + + + +Initializes the Eppo client with configuration parameters. This method should be called once on application startup. After invocation of this method, the SDK will poll Eppo API at regular intervals to retrieve assignment configurations. + + +
+ +[offlineInit(config)](./node-server-sdk.offlineinit.md) + + + + +Initializes the Eppo client in offline mode with a provided configuration. This method is synchronous and does not make any network requests. Use this when you want to initialize the SDK with a previously fetched configuration. + + +
+ +## Interfaces + + + + +
+ +Interface + + + + +Description + + +
+ +[IClientConfig](./node-server-sdk.iclientconfig.md) + + + + +Configuration used for initializing the Eppo client + + +
+ +[IOfflineClientConfig](./node-server-sdk.iofflineclientconfig.md) + + + + +Configuration used for offline initialization of the Eppo client. Offline initialization allows the SDK to be used without making any network requests. + + +
+ +## Variables + + + +
+ +Variable + + + + +Description + + +
+ +[NO\_OP\_EVENT\_DISPATCHER](./node-server-sdk.no_op_event_dispatcher.md) + + + + + +
+ diff --git a/docs/node-server-sdk.no_op_event_dispatcher.md b/docs/node-server-sdk.no_op_event_dispatcher.md index 830f09a..e322135 100644 --- a/docs/node-server-sdk.no_op_event_dispatcher.md +++ b/docs/node-server-sdk.no_op_event_dispatcher.md @@ -1,11 +1,16 @@ - - -[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [NO\_OP\_EVENT\_DISPATCHER](./node-server-sdk.no_op_event_dispatcher.md) - -## NO\_OP\_EVENT\_DISPATCHER variable - -**Signature:** - -```typescript -NO_OP_EVENT_DISPATCHER: EventDispatcher -``` + + +[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [NO\_OP\_EVENT\_DISPATCHER](./node-server-sdk.no_op_event_dispatcher.md) + +## NO\_OP\_EVENT\_DISPATCHER variable + +> Warning: This API is now obsolete. +> +> Eppo has discontinued eventing support. Event tracking will be handled by Datadog SDKs. +> + +**Signature:** + +```typescript +NO_OP_EVENT_DISPATCHER: EventDispatcher +``` diff --git a/docs/node-server-sdk.offlineinit.md b/docs/node-server-sdk.offlineinit.md new file mode 100644 index 0000000..7203063 --- /dev/null +++ b/docs/node-server-sdk.offlineinit.md @@ -0,0 +1,56 @@ + + +[Home](./index.md) > [@eppo/node-server-sdk](./node-server-sdk.md) > [offlineInit](./node-server-sdk.offlineinit.md) + +## offlineInit() function + +Initializes the Eppo client in offline mode with a provided configuration. This method is synchronous and does not make any network requests. Use this when you want to initialize the SDK with a previously fetched configuration. + +**Signature:** + +```typescript +export declare function offlineInit(config: IOfflineClientConfig): EppoClient; +``` + +## Parameters + + + +
+ +Parameter + + + + +Type + + + + +Description + + +
+ +config + + + + +[IOfflineClientConfig](./node-server-sdk.iofflineclientconfig.md) + + + + +offline client configuration containing flag configurations as JSON strings + + +
+ +**Returns:** + +EppoClient + +the initialized client instance +