@fluxyte/sdk 0.2.4 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +90 -3
- package/dist/core/client.d.ts.map +1 -1
- package/dist/core/client.js +3 -0
- package/dist/core/client.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -13,14 +13,53 @@ npm install @fluxyte/sdk
|
|
|
13
13
|
|
|
14
14
|
- Browser or Node.js 18+ (global `fetch` available)
|
|
15
15
|
- A Fluxyte API key (sent as `X-API-Key`)
|
|
16
|
+
- `pk_*` for browser/public SDK usage
|
|
17
|
+
- `sk_*` for backend/server usage only
|
|
16
18
|
|
|
17
19
|
## Authentication (API Key)
|
|
18
20
|
|
|
19
21
|
Treat your API key like a password. Do not commit it to source control.
|
|
20
22
|
|
|
21
|
-
- Vite: `VITE_FLUXYTE_API_KEY
|
|
22
|
-
- Next.js: `NEXT_PUBLIC_FLUXYTE_API_KEY
|
|
23
|
-
- Server: `FLUXYTE_API_KEY
|
|
23
|
+
- Vite: `VITE_FLUXYTE_API_KEY=pk_...`
|
|
24
|
+
- Next.js: `NEXT_PUBLIC_FLUXYTE_API_KEY=pk_...` (public key only)
|
|
25
|
+
- Server: `FLUXYTE_API_KEY=sk_...`
|
|
26
|
+
|
|
27
|
+
The SDK rejects `sk_*` keys in browser environments to prevent accidental exposure.
|
|
28
|
+
|
|
29
|
+
## Key Management
|
|
30
|
+
|
|
31
|
+
### Key Purpose
|
|
32
|
+
|
|
33
|
+
- `pk_*` (PUBLIC): for browser/frontend SDK usage.
|
|
34
|
+
- `sk_*` (SECRET): for backend/server usage only.
|
|
35
|
+
|
|
36
|
+
### How to get keys
|
|
37
|
+
|
|
38
|
+
1. Sign in to Fluxyte dashboard.
|
|
39
|
+
2. Go to `Account` -> `API Keys`.
|
|
40
|
+
3. Create a key and choose type:
|
|
41
|
+
- `PUBLIC (pk_*)` for frontend SDK traffic.
|
|
42
|
+
- `SECRET (sk_*)` for backend automation or server integrations.
|
|
43
|
+
4. Copy the key immediately (shown once).
|
|
44
|
+
|
|
45
|
+
### Allowed origins (PUBLIC keys)
|
|
46
|
+
|
|
47
|
+
For `pk_*` keys, configure allowed origins in dashboard (for example `https://app.example.com`).
|
|
48
|
+
This limits where browser-based SDK requests are accepted from.
|
|
49
|
+
|
|
50
|
+
### Rotation and revocation
|
|
51
|
+
|
|
52
|
+
- Rotate keys on a regular schedule (recommended every 60-90 days).
|
|
53
|
+
- Keep a short overlap window where old and new keys are both valid during rollout.
|
|
54
|
+
- Revoke keys immediately if exposed.
|
|
55
|
+
- Update environment variables and redeploy clients after rotation.
|
|
56
|
+
|
|
57
|
+
### Environment examples
|
|
58
|
+
|
|
59
|
+
- Frontend: `NEXT_PUBLIC_FLUXYTE_API_KEY=pk_...`
|
|
60
|
+
- Backend: `FLUXYTE_API_KEY=sk_...`
|
|
61
|
+
|
|
62
|
+
Never expose `sk_*` in browser bundles, client logs, or public repos.
|
|
24
63
|
|
|
25
64
|
## Choose An Entrypoint
|
|
26
65
|
|
|
@@ -132,6 +171,54 @@ Identity guidance:
|
|
|
132
171
|
|
|
133
172
|
## Onboarding Events
|
|
134
173
|
|
|
174
|
+
Events power onboarding analytics, drop-off detection, and AI insights.
|
|
175
|
+
|
|
176
|
+
Supported event types:
|
|
177
|
+
|
|
178
|
+
1. `FLOW_STARTED`
|
|
179
|
+
- User begins a tracked onboarding flow.
|
|
180
|
+
- Send once when the flow is entered.
|
|
181
|
+
|
|
182
|
+
2. `STEP_VIEWED`
|
|
183
|
+
- User lands on or opens a specific step.
|
|
184
|
+
- Send whenever the current step changes.
|
|
185
|
+
|
|
186
|
+
3. `STEP_COMPLETED`
|
|
187
|
+
- User successfully completes a step.
|
|
188
|
+
- Send only after verified completion signal.
|
|
189
|
+
|
|
190
|
+
4. `FLOW_COMPLETED`
|
|
191
|
+
- User completes all required steps in the flow.
|
|
192
|
+
- Send once at successful finish.
|
|
193
|
+
|
|
194
|
+
5. `ABANDONED`
|
|
195
|
+
- User exits/stalls before completion.
|
|
196
|
+
- Send when inactivity timeout or explicit exit indicates drop-off.
|
|
197
|
+
|
|
198
|
+
Recommended minimum context for event quality:
|
|
199
|
+
|
|
200
|
+
- `product` or `service`
|
|
201
|
+
- `userTarget`
|
|
202
|
+
- `flowSlug`
|
|
203
|
+
- `stepSlug` (for step-level events)
|
|
204
|
+
- stable identity (`context.sessionId` or `context.userId`)
|
|
205
|
+
|
|
206
|
+
Typical event sequence:
|
|
207
|
+
|
|
208
|
+
1. `FLOW_STARTED`
|
|
209
|
+
2. `STEP_VIEWED` (step 1)
|
|
210
|
+
3. `STEP_COMPLETED` (step 1)
|
|
211
|
+
4. `STEP_VIEWED` (step 2)
|
|
212
|
+
5. `STEP_COMPLETED` (step 2)
|
|
213
|
+
6. `FLOW_COMPLETED`
|
|
214
|
+
|
|
215
|
+
Drop-off sequence example:
|
|
216
|
+
|
|
217
|
+
1. `FLOW_STARTED`
|
|
218
|
+
2. `STEP_VIEWED` (step 1)
|
|
219
|
+
3. `STEP_VIEWED` (step 2)
|
|
220
|
+
4. `ABANDONED`
|
|
221
|
+
|
|
135
222
|
```ts
|
|
136
223
|
await client.sendEvent({
|
|
137
224
|
type: "STEP_COMPLETED",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,KAAK,qBAAqB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,uBAAuB,CAAC,CAAC;AAC5E,KAAK,sBAAsB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,wBAAwB,CAAC,CAAC;AAC9E,KAAK,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAChE,KAAK,sBAAsB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,wBAAwB,CAAC,CAAC;AAK9E,KAAK,aAAa,GAAG;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/C,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,iBAAiB,CAAC,EAAE,MAAM,MAAM,CAAC;CAClC,CAAC;AAEF,qBAAa,kBAAkB;IASjB,OAAO,CAAC,QAAQ,CAAC,MAAM;IARnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgD;IACjF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA4C;IAC7E,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA6B;IACnE,OAAO,CAAC,iBAAiB,CAAuB;gBAEnB,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE7C,KAAK,qBAAqB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,uBAAuB,CAAC,CAAC;AAC5E,KAAK,sBAAsB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,wBAAwB,CAAC,CAAC;AAC9E,KAAK,eAAe,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAAC,CAAC;AAChE,KAAK,sBAAsB,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC,wBAAwB,CAAC,CAAC;AAK9E,KAAK,aAAa,GAAG;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC/C,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAC3C,iBAAiB,CAAC,EAAE,MAAM,MAAM,CAAC;CAClC,CAAC;AAEF,qBAAa,kBAAkB;IASjB,OAAO,CAAC,QAAQ,CAAC,MAAM;IARnC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAU;IACxC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgD;IACjF,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA4C;IAC7E,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA6B;IACnE,OAAO,CAAC,iBAAiB,CAAuB;gBAEnB,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,aAAkB;IAgBxE,OAAO,CAAC,iBAAiB;IAUzB,OAAO,CAAC,wBAAwB;IAgBhC,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,oBAAoB;IAYtB,IAAI,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAyB3E,UAAU,CACR,OAAO,EAAE,IAAI,CAAC,qBAAqB,EAAE,QAAQ,CAAC,EAC9C,OAAO,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,EACtC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAC7B,MAAM,IAAI;IAqBP,SAAS,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BzD,cAAc,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;CAY9D"}
|
package/dist/core/client.js
CHANGED
|
@@ -6,6 +6,9 @@ export class OnboardingAIClient {
|
|
|
6
6
|
constructor(apiKey, options = {}) {
|
|
7
7
|
this.apiKey = apiKey;
|
|
8
8
|
this.inMemorySessionId = null;
|
|
9
|
+
if (typeof window !== "undefined" && apiKey.startsWith("sk_")) {
|
|
10
|
+
throw new Error("Secret API keys (sk_*) must not be used in browser clients. Use a public key (pk_*).");
|
|
11
|
+
}
|
|
9
12
|
this.baseUrl = options.baseUrl ?? DEFAULT_BASE_URL;
|
|
10
13
|
this.autoSessionId = options.autoSessionId !== false;
|
|
11
14
|
this.sessionStorageKey =
|
package/dist/core/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/core/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAQrC,MAAM,gBAAgB,GAAG,4BAA4B,CAAC;AACtD,MAAM,2BAA2B,GAAG,+BAA+B,CAAC;AAWpE,MAAM,OAAO,kBAAkB;IAS7B,YAA6B,MAAc,EAAE,UAAyB,EAAE;QAA3C,WAAM,GAAN,MAAM,CAAQ;QAFnC,sBAAiB,GAAkB,IAAI,CAAC;QAG9C,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9D,MAAM,IAAI,KAAK,CACb,sFAAsF,CACvF,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,gBAAgB,CAAC;QACnD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,KAAK,KAAK,CAAC;QACrD,IAAI,CAAC,iBAAiB;YACpB,OAAO,CAAC,iBAAiB,IAAI,2BAA2B,CAAC;QAC3D,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;QAC7C,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;QAC7C,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IACzD,CAAC;IAEO,iBAAiB;QACvB,IAAI,IAAI,CAAC,qBAAqB;YAAE,OAAO,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAEpE,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YAC7E,OAAO,MAAM,CAAC,UAAU,EAAE,CAAC;QAC7B,CAAC;QAED,OAAO,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;IACjF,CAAC;IAEO,wBAAwB;QAC9B,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACzC,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,IAAI,EAAE;gBAAE,OAAO,QAAQ,CAAC;QACvE,CAAC;QAED,IAAI,IAAI,CAAC,iBAAiB;YAAE,OAAO,IAAI,CAAC,iBAAiB,CAAC;QAE1D,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACzD,MAAM,GAAG,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAChE,IAAI,GAAG,EAAE,IAAI,EAAE;gBAAE,OAAO,GAAG,CAAC;QAC9B,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,gBAAgB,CAAC,SAAiB;QACxC,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC;QAEnC,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YACjC,OAAO;QACT,CAAC;QAED,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACzD,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;QACjE,CAAC;IACH,CAAC;IAEO,sBAAsB,CAAC,iBAA0B,EAAE,aAAsB;QAC/E,IAAI,iBAAiB,EAAE,IAAI,EAAE;YAAE,OAAO,iBAAiB,CAAC;QACxD,IAAI,aAAa,EAAE,IAAI,EAAE;YAAE,OAAO,SAAS,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,aAAa;YAAE,OAAO,SAAS,CAAC;QAE1C,MAAM,QAAQ,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QACjD,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC;QAE9B,MAAM,SAAS,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC3C,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACjC,OAAO,SAAS,CAAC;IACnB,CAAC;IAEO,oBAAoB,CAAC,IAI5B;QACC,IAAI,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,aAAa,EAAE,IAAI,EAAE;YAAE,OAAO;QAEjE,MAAM,IAAI,KAAK,CACb,+BAA+B,IAAI,CAAC,OAAO,wCAAwC,CACpF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAA8B;QACvC,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAC3C,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,OAAO,EAAE,MAAM,CACxB,CAAC;QAEF,IAAI,CAAC,oBAAoB,CAAC;YACxB,SAAS;YACT,aAAa,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM;YACtC,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,mBAAmB,EAAE;YAC1D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,WAAW,EAAE,IAAI,CAAC,MAAM;aACzB;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;SAC/D,CAAC,CAAC;QAEH,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;QAC1B,OAAO,GAAG,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;IAED,UAAU,CACR,OAA8C,EAC9C,OAAsC,EACtC,OAA8B;QAE9B,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAC3C,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,OAAO,EAAE,MAAM,CACxB,CAAC;QAEF,IAAI,CAAC,oBAAoB,CAAC;YACxB,SAAS;YACT,aAAa,EAAE,OAAO,CAAC,OAAO,EAAE,MAAM;YACtC,OAAO,EAAE,MAAM;SAChB,CAAC,CAAC;QAEH,OAAO,SAAS,CACd,GAAG,IAAI,CAAC,OAAO,mBAAmB,EAClC,IAAI,CAAC,MAAM,EACX,EAAE,GAAG,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,EACvC,OAAO,EACP,OAAO,CACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAA+B;QAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAC3C,OAAO,CAAC,SAAS,EACjB,OAAO,CAAC,MAAM,CACf,CAAC;QAEF,IAAI,CAAC,oBAAoB,CAAC;YACxB,SAAS;YACT,aAAa,EAAE,OAAO,CAAC,MAAM;YAC7B,OAAO,EAAE,QAAQ;SAClB,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,SAAS,EAAE;YAChD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,WAAW,EAAE,IAAI,CAAC,MAAM;aACzB;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,GAAG,OAAO;gBACV,OAAO,EAAE;oBACP,GAAG,OAAO;oBACV,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,SAAS;iBAC1C;aACF,CAAC;SACH,CAAC,CAAC;QAEH,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,OAAwB;QAC3C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,WAAW,EAAE;YAClD,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,WAAW,EAAE,IAAI,CAAC,MAAM;aACzB;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;SAC9B,CAAC,CAAC;QAEH,MAAM,cAAc,CAAC,GAAG,CAAC,CAAC;IAC5B,CAAC;CACF"}
|