Skip to content

Commit 801210b

Browse files
authored
refactor event tracking config options for clarity. disabled by default (#103)
1 parent 31ef4ec commit 801210b

7 files changed

+27
-30
lines changed

docs/node-server-sdk.iclientconfig.eventingestionconfig.md renamed to docs/node-server-sdk.iclientconfig.eventtracking.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
11
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
22

3-
[Home](./index.md) &gt; [@eppo/node-server-sdk](./node-server-sdk.md) &gt; [IClientConfig](./node-server-sdk.iclientconfig.md) &gt; [eventIngestionConfig](./node-server-sdk.iclientconfig.eventingestionconfig.md)
3+
[Home](./index.md) &gt; [@eppo/node-server-sdk](./node-server-sdk.md) &gt; [IClientConfig](./node-server-sdk.iclientconfig.md) &gt; [eventTracking](./node-server-sdk.iclientconfig.eventtracking.md)
44

5-
## IClientConfig.eventIngestionConfig property
5+
## IClientConfig.eventTracking property
66

77
Configuration settings for the event dispatcher
88

99
**Signature:**
1010

1111
```typescript
12-
eventIngestionConfig?: {
12+
eventTracking?: {
1313
batchSize?: number;
1414
deliveryIntervalMs?: number;
15-
disabled?: boolean;
15+
enabled?: boolean;
1616
maxQueueSize?: number;
1717
maxRetries?: number;
1818
maxRetryDelayMs?: number;

docs/node-server-sdk.iclientconfig.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ export interface IClientConfig
2020
| [assignmentLogger](./node-server-sdk.iclientconfig.assignmentlogger.md) | | IAssignmentLogger | Provide a logging implementation to send variation assignments to your data warehouse. |
2121
| [banditLogger?](./node-server-sdk.iclientconfig.banditlogger.md) | | IBanditLogger | _(Optional)_ Logging implementation to send bandit actions to your data warehouse |
2222
| [baseUrl?](./node-server-sdk.iclientconfig.baseurl.md) | | string | _(Optional)_ Base URL of the Eppo API. Clients should use the default setting in most cases. |
23-
| [eventIngestionConfig?](./node-server-sdk.iclientconfig.eventingestionconfig.md) | | { batchSize?: number; deliveryIntervalMs?: number; disabled?: boolean; maxQueueSize?: number; maxRetries?: number; maxRetryDelayMs?: number; retryIntervalMs?: number; } | _(Optional)_ Configuration settings for the event dispatcher |
23+
| [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 |
2424
| [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) |
2525
| [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) |
2626
| [pollAfterFailedInitialization?](./node-server-sdk.iclientconfig.pollafterfailedinitialization.md) | | boolean | _(Optional)_ Poll for new configurations even if the initial configuration request failed. (default: false) |

node-server-sdk.api.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,10 @@ export interface IClientConfig {
4949
assignmentLogger: IAssignmentLogger;
5050
banditLogger?: IBanditLogger;
5151
baseUrl?: string;
52-
eventIngestionConfig?: {
52+
eventTracking?: {
5353
batchSize?: number;
5454
deliveryIntervalMs?: number;
55-
disabled?: boolean;
55+
enabled?: boolean;
5656
maxQueueSize?: number;
5757
maxRetries?: number;
5858
maxRetryDelayMs?: number;

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@eppo/node-server-sdk",
3-
"version": "3.9.3",
3+
"version": "3.10.0",
44
"description": "Eppo node server SDK",
55
"main": "dist/index.js",
66
"files": [

src/i-client-config.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,13 +47,13 @@ export interface IClientConfig {
4747
pollingIntervalMs?: number;
4848

4949
/** Configuration settings for the event dispatcher */
50-
eventIngestionConfig?: {
50+
eventTracking?: {
5151
/** Maximum number of events to send per delivery request. Defaults to 1000 events. */
5252
batchSize?: number;
5353
/** Number of milliseconds to wait between each batch delivery. Defaults to 10 seconds. */
5454
deliveryIntervalMs?: number;
55-
/** Whether to disable event ingestion. Defaults to false. */
56-
disabled?: boolean;
55+
/** Whether to enable event tracking. Defaults to false. */
56+
enabled?: boolean;
5757
/**
5858
* Maximum number of events to queue in memory before starting to drop events.
5959
* Note: This is only used if localStorage is not available.

src/index.spec.ts

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -608,26 +608,23 @@ describe('EppoClient E2E test', () => {
608608
});
609609
});
610610

611-
describe('eventIngestionConfig', () => {
612-
it('should not be used if eventIngestionConfig.disabled is true', async () => {
611+
describe('eventTracking', () => {
612+
it('should be disabled by default', async () => {
613613
const client = await init({
614614
apiKey,
615615
baseUrl: `http://127.0.0.1:${TEST_SERVER_PORT}`,
616616
assignmentLogger: mockLogger,
617-
eventIngestionConfig: {
618-
disabled: true,
619-
},
620617
});
621618
expect(client['eventDispatcher']).toEqual(NO_OP_EVENT_DISPATCHER);
622619
});
623620

624-
it('should be used if eventIngestionConfig.disabled is false', async () => {
621+
it('should be enabled if eventTracking.enabled is true', async () => {
625622
const client = await init({
626623
apiKey,
627624
baseUrl: `http://127.0.0.1:${TEST_SERVER_PORT}`,
628625
assignmentLogger: mockLogger,
629-
eventIngestionConfig: {
630-
disabled: false,
626+
eventTracking: {
627+
enabled: true
631628
},
632629
});
633630
expect(client['eventDispatcher']).not.toEqual(NO_OP_EVENT_DISPATCHER);
@@ -655,8 +652,8 @@ describe('EppoClient E2E test', () => {
655652
apiKey,
656653
baseUrl: `http://127.0.0.1:${TEST_SERVER_PORT}`,
657654
assignmentLogger: mockLogger,
658-
eventIngestionConfig: {
659-
disabled: false,
655+
eventTracking: {
656+
enabled: true,
660657
},
661658
});
662659

@@ -676,8 +673,8 @@ describe('EppoClient E2E test', () => {
676673
apiKey,
677674
baseUrl: `http://127.0.0.1:${TEST_SERVER_PORT}`,
678675
assignmentLogger: mockLogger,
679-
eventIngestionConfig: {
680-
disabled: false,
676+
eventTracking: {
677+
enabled: true,
681678
},
682679
});
683680

@@ -698,8 +695,8 @@ describe('EppoClient E2E test', () => {
698695
apiKey,
699696
baseUrl: `http://127.0.0.1:${TEST_SERVER_PORT}`,
700697
assignmentLogger: mockLogger,
701-
eventIngestionConfig: {
702-
disabled: false,
698+
eventTracking: {
699+
enabled: true,
703700
},
704701
});
705702

src/index.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ export async function init(config: IClientConfig): Promise<EppoClient> {
6565
pollingIntervalMs,
6666
throwOnFailedInitialization = true,
6767
pollAfterFailedInitialization = false,
68-
eventIngestionConfig,
68+
eventTracking,
6969
} = config;
7070
if (!apiKey) {
7171
throw new Error('API key is required');
@@ -89,7 +89,7 @@ export async function init(config: IClientConfig): Promise<EppoClient> {
8989
const flagConfigurationStore = new MemoryOnlyConfigurationStore<Flag>();
9090
const banditVariationConfigurationStore = new MemoryOnlyConfigurationStore<BanditVariation[]>();
9191
const banditModelConfigurationStore = new MemoryOnlyConfigurationStore<BanditParameters>();
92-
const eventDispatcher = newEventDispatcher(apiKey, eventIngestionConfig);
92+
const eventDispatcher = newEventDispatcher(apiKey, eventTracking);
9393

9494
clientInstance = new EppoClient({
9595
flagConfigurationStore,
@@ -146,18 +146,18 @@ export function getInstance(): EppoClient {
146146

147147
function newEventDispatcher(
148148
sdkKey: string,
149-
config: IClientConfig['eventIngestionConfig'] = {},
149+
config: IClientConfig['eventTracking'] = {},
150150
): EventDispatcher {
151151
const {
152152
batchSize = 1_000,
153153
deliveryIntervalMs = 10_000,
154-
disabled = false,
154+
enabled = false,
155155
maxQueueSize = 10_000,
156156
maxRetries = 3,
157157
maxRetryDelayMs = 30_000,
158158
retryIntervalMs = 5_000,
159159
} = config;
160-
if (disabled) {
160+
if (!enabled) {
161161
return NO_OP_EVENT_DISPATCHER;
162162
}
163163
let eventQueue: NamedEventQueue<Event>;

0 commit comments

Comments
 (0)