@convex-dev/workos-authkit 0.1.7 → 0.2.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 +23 -0
- package/dist/client/index.d.ts +3 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +24 -5
- package/dist/client/index.js.map +1 -1
- package/dist/component/_generated/api.d.ts +592 -0
- package/dist/component/_generated/api.d.ts.map +1 -1
- package/dist/component/_generated/api.js.map +1 -1
- package/dist/component/_generated/component.d.ts +18 -7
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/backfill.d.ts +60 -0
- package/dist/component/backfill.d.ts.map +1 -0
- package/dist/component/backfill.js +171 -0
- package/dist/component/backfill.js.map +1 -0
- package/dist/component/convex.config.d.ts.map +1 -1
- package/dist/component/convex.config.js +2 -0
- package/dist/component/convex.config.js.map +1 -1
- package/dist/component/lib.d.ts +27 -10
- package/dist/component/lib.d.ts.map +1 -1
- package/dist/component/lib.js +93 -80
- package/dist/component/lib.js.map +1 -1
- package/dist/component/schema.d.ts +7 -2
- package/dist/component/schema.d.ts.map +1 -1
- package/dist/component/schema.js +3 -0
- package/dist/component/schema.js.map +1 -1
- package/package.json +11 -10
- package/src/client/index.ts +24 -5
- package/src/component/_generated/api.ts +518 -0
- package/src/component/_generated/component.ts +25 -12
- package/src/component/backfill.test.ts +335 -0
- package/src/component/backfill.ts +217 -0
- package/src/component/convex.config.ts +2 -0
- package/src/component/lib.ts +103 -81
- package/src/component/schema.ts +3 -0
- package/src/test.ts +4 -0
package/README.md
CHANGED
|
@@ -10,6 +10,7 @@ Features:
|
|
|
10
10
|
|
|
11
11
|
- Sync user data from WorkOS to your Convex database reliably and durably.
|
|
12
12
|
- Respond to events with Convex functions.
|
|
13
|
+
- Backfill existing WorkOS users when adding the component to an existing app.
|
|
13
14
|
|
|
14
15
|
See [example](./example) for a demo of how to incorporate this component into your application.
|
|
15
16
|
|
|
@@ -235,6 +236,28 @@ export const { authKitEvent } = authKit.events({
|
|
|
235
236
|
});
|
|
236
237
|
```
|
|
237
238
|
|
|
239
|
+
## Backfilling existing users
|
|
240
|
+
|
|
241
|
+
If you're adding this component to an app that already has users in WorkOS, you
|
|
242
|
+
can backfill them into the component's user table. The backfill also fires
|
|
243
|
+
`user.created` event handlers, so your app's own tables get populated too.
|
|
244
|
+
|
|
245
|
+
Export the backfill utility from your auth file:
|
|
246
|
+
|
|
247
|
+
```ts
|
|
248
|
+
// convex/auth.ts
|
|
249
|
+
export const { backfillUsers } = authKit.utils();
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
Then trigger it from the CLI or the Convex dashboard:
|
|
253
|
+
|
|
254
|
+
```sh
|
|
255
|
+
npx convex run auth:backfillUsers
|
|
256
|
+
```
|
|
257
|
+
|
|
258
|
+
The backfill processes users oldest-first. It's idempotent - if interrupted, just
|
|
259
|
+
run it again and it will skip users that are already synced.
|
|
260
|
+
|
|
238
261
|
## Actions
|
|
239
262
|
|
|
240
263
|
The AuthKit component can be configured to handle actions from WorkOS. Actions
|
package/dist/client/index.d.ts
CHANGED
|
@@ -77,6 +77,9 @@ export declare class AuthKit<DataModel extends GenericDataModel> {
|
|
|
77
77
|
action: Record<string, any>;
|
|
78
78
|
}, Promise<WorkOSResponsePayload>>;
|
|
79
79
|
};
|
|
80
|
+
utils(): {
|
|
81
|
+
backfillUsers: import("convex/server").RegisteredAction<"internal", {}, Promise<null>>;
|
|
82
|
+
};
|
|
80
83
|
registerRoutes(http: HttpRouter): void;
|
|
81
84
|
}
|
|
82
85
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,UAAU,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,UAAU,EAKhB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EACL,MAAM,EACN,KAAK,KAAK,IAAI,WAAW,EACzB,KAAK,aAAa,IAAI,mBAAmB,EACzC,KAAK,kCAAkC,EACvC,KAAK,gCAAgC,EACtC,MAAM,kBAAkB,CAAC;AAI1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAGzE,KAAK,qBAAqB,GACtB,gCAAgC,GAChC,kCAAkC,CAAC;AAEvC,KAAK,OAAO,GAAG;IACb,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAGF,MAAM,MAAM,aAAa,GAAG;IAC1B,aAAa,CAAC,EAAE,iBAAiB,CAC/B,UAAU,EACV,UAAU,EACV;QAAE,MAAM,EAAE,OAAO,CAAA;KAAE,EACnB,qBAAqB,CACtB,CAAC;IACF,YAAY,CAAC,EAAE,iBAAiB,CAC9B,UAAU,EACV,UAAU,EACV;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAA;KAAE,EAChC,IAAI,CACL,CAAC;CACH,CAAC;AAYF,qBAAa,OAAO,CAAC,SAAS,SAAS,gBAAgB;IAI5C,SAAS,EAAE,YAAY;IACvB,OAAO,CAAC,EAAE,OAAO;IAJnB,MAAM,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,MAAM,CAAS;gBAEd,SAAS,EAAE,YAAY,EACvB,OAAO,CAAC,EAAE,OAAO,YAAA;IA+B1B,sBAAsB;;;;;;;;;;;;SAegB;IAEhC,WAAW,CAAC,GAAG,EAAE,WAAW;;;;;;;;;;;;;;IASlC,MAAM,CAAC,CAAC,SAAS,WAAW,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE;SAC1C,GAAG,IAAI,CAAC,GAAG,CACV,CAAC,SAAS,OAAO,CACf,WAAW,EACX;YACE,KAAK,EAAE,GAAG,CAAC;SACZ,CACF,EAED,GAAG,EAAE,kBAAkB,CAAC,SAAS,CAAC,EAClC,KAAK,EAAE,CAAC,KACL,OAAO,CAAC,IAAI,CAAC;KACnB;;;;;;IAcD,OAAO,CAAC,CAAC,SAAS,gBAAgB,GAAG,kBAAkB,EAAE,IAAI,EAAE;SAC5D,GAAG,IAAI,CAAC,GAAG,CACV,CAAC,SAAS,OAAO,CACf,mBAAmB,EACnB;YACE,MAAM,EAAE,GAAG,SAAS,gBAAgB,GAChC,+BAA+B,GAC/B,kCAAkC,CAAC;SACxC,CACF,EAED,GAAG,EAAE,kBAAkB,CAAC,SAAS,CAAC,EAClC,MAAM,EAAE,CAAC,EACT,EACE,KAAK,EACL,IAAI,GACL,EAAE;YACD,KAAK,EAAE,MAAM,qBAAqB,CAAC;YACnC,IAAI,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,qBAAqB,CAAC;SACvD,KACE,OAAO,CAAC,qBAAqB,CAAC;KACpC;;;;;IAkCD,KAAK;;;IAmBL,cAAc,CAAC,IAAI,EAAE,UAAU;CA4EhC"}
|
package/dist/client/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { createFunctionHandle, httpActionGeneric, internalMutationGeneric, } from "convex/server";
|
|
1
|
+
import { createFunctionHandle, httpActionGeneric, internalActionGeneric, internalMutationGeneric, } from "convex/server";
|
|
2
2
|
import { WorkOS, } from "@workos-inc/node";
|
|
3
3
|
import { v } from "convex/values";
|
|
4
|
+
import { parse } from "convex-helpers/validators";
|
|
5
|
+
import { vEvent } from "../component/lib.js";
|
|
4
6
|
const requireEnvVar = (str, onUndefined) => {
|
|
5
7
|
if (!str) {
|
|
6
8
|
onUndefined();
|
|
@@ -101,6 +103,25 @@ export class AuthKit {
|
|
|
101
103
|
}),
|
|
102
104
|
};
|
|
103
105
|
}
|
|
106
|
+
utils() {
|
|
107
|
+
return {
|
|
108
|
+
backfillUsers: internalActionGeneric({
|
|
109
|
+
args: {},
|
|
110
|
+
returns: v.null(),
|
|
111
|
+
handler: async (ctx) => {
|
|
112
|
+
const onEventHandle = this.config.authFunctions?.authKitEvent
|
|
113
|
+
? await createFunctionHandle(this.config.authFunctions.authKitEvent)
|
|
114
|
+
: undefined;
|
|
115
|
+
await ctx.runMutation(this.component.backfill.startBackfill, {
|
|
116
|
+
apiKey: this.config.apiKey,
|
|
117
|
+
onEventHandle,
|
|
118
|
+
logLevel: this.config.logLevel,
|
|
119
|
+
});
|
|
120
|
+
return null;
|
|
121
|
+
},
|
|
122
|
+
}),
|
|
123
|
+
};
|
|
124
|
+
}
|
|
104
125
|
registerRoutes(http) {
|
|
105
126
|
http.route({
|
|
106
127
|
path: "/workos/webhook",
|
|
@@ -123,14 +144,12 @@ export class AuthKit {
|
|
|
123
144
|
if (this.config.logLevel === "DEBUG") {
|
|
124
145
|
console.log("received event", event);
|
|
125
146
|
}
|
|
126
|
-
await ctx.runMutation(this.component.lib.
|
|
147
|
+
await ctx.runMutation(this.component.lib.onWebhookEvent, {
|
|
127
148
|
apiKey: this.config.apiKey,
|
|
128
|
-
|
|
129
|
-
event: event.event,
|
|
149
|
+
event: parse(vEvent, event),
|
|
130
150
|
onEventHandle: this.config.authFunctions?.authKitEvent
|
|
131
151
|
? await createFunctionHandle(this.config.authFunctions.authKitEvent)
|
|
132
152
|
: undefined,
|
|
133
|
-
updatedAt: "updated_at" in event ? event.updated_at : undefined,
|
|
134
153
|
eventTypes: this.config.additionalEventTypes,
|
|
135
154
|
logLevel: this.config.logLevel,
|
|
136
155
|
});
|
package/dist/client/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,eAAe,CAAC;AAEvB,OAAO,EACL,MAAM,GAKP,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,CAAC,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
|