@adonis-agora/collaboration 0.12.0 → 0.13.0
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/CHANGELOG.md +138 -0
- package/dist/providers/collaboration_provider.d.ts.map +1 -1
- package/dist/providers/collaboration_provider.js +4 -0
- package/dist/providers/collaboration_provider.js.map +1 -1
- package/dist/src/auth/secret.d.ts +48 -0
- package/dist/src/auth/secret.d.ts.map +1 -0
- package/dist/src/auth/secret.js +95 -0
- package/dist/src/auth/secret.js.map +1 -0
- package/dist/src/auth/token.d.ts +111 -14
- package/dist/src/auth/token.d.ts.map +1 -1
- package/dist/src/auth/token.js +95 -14
- package/dist/src/auth/token.js.map +1 -1
- package/dist/src/collaboration_manager.d.ts +72 -1
- package/dist/src/collaboration_manager.d.ts.map +1 -1
- package/dist/src/collaboration_manager.js +115 -0
- package/dist/src/collaboration_manager.js.map +1 -1
- package/dist/src/define_config.d.ts +5 -0
- package/dist/src/define_config.d.ts.map +1 -1
- package/dist/src/define_config.js.map +1 -1
- package/dist/src/documents.d.ts +59 -0
- package/dist/src/documents.d.ts.map +1 -1
- package/dist/src/documents.js.map +1 -1
- package/dist/src/driver.d.ts +53 -0
- package/dist/src/driver.d.ts.map +1 -1
- package/dist/src/driver.js +4 -1
- package/dist/src/driver.js.map +1 -1
- package/dist/src/drivers/automerge/automerge_driver.d.ts +25 -0
- package/dist/src/drivers/automerge/automerge_driver.d.ts.map +1 -1
- package/dist/src/drivers/automerge/automerge_driver.js +105 -16
- package/dist/src/drivers/automerge/automerge_driver.js.map +1 -1
- package/dist/src/drivers/partykit/partykit_driver.d.ts +5 -0
- package/dist/src/drivers/partykit/partykit_driver.d.ts.map +1 -1
- package/dist/src/drivers/partykit/partykit_driver.js +13 -7
- package/dist/src/drivers/partykit/partykit_driver.js.map +1 -1
- package/dist/src/drivers/yjs/yjs_driver.d.ts +16 -4
- package/dist/src/drivers/yjs/yjs_driver.d.ts.map +1 -1
- package/dist/src/drivers/yjs/yjs_driver.js +168 -17
- package/dist/src/drivers/yjs/yjs_driver.js.map +1 -1
- package/dist/src/http/types.d.ts +21 -3
- package/dist/src/http/types.d.ts.map +1 -1
- package/dist/src/http/types.js.map +1 -1
- package/dist/src/index.d.ts +7 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/routes.d.ts +74 -2
- package/dist/src/routes.d.ts.map +1 -1
- package/dist/src/routes.js +147 -9
- package/dist/src/routes.js.map +1 -1
- package/dist/src/types.d.ts +45 -0
- package/dist/src/types.d.ts.map +1 -1
- package/dist/stubs/config/collaboration.stub +8 -0
- package/dist/stubs/partykit/worker/party.ts.stub +35 -4
- package/package.json +1 -1
package/dist/src/routes.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createHmac, timingSafeEqual } from 'node:crypto';
|
|
2
|
-
import { CollabForbiddenError, issueToken } from './auth/token.js';
|
|
2
|
+
import { CollabForbiddenError, issueToken, } from './auth/token.js';
|
|
3
3
|
import { CollabUnauthorizedError, } from './http/types.js';
|
|
4
4
|
/** The permission granted when nothing anywhere declares a rule. */
|
|
5
5
|
const DENY_ALL = { canRead: false, canWrite: false, canComment: false };
|
|
@@ -129,6 +129,39 @@ function isDenied(result) {
|
|
|
129
129
|
return 'denied' in result;
|
|
130
130
|
}
|
|
131
131
|
/* ───────────────────────────── handlers ───────────────────────────── */
|
|
132
|
+
/**
|
|
133
|
+
* The whole of what issuing a credential means here: the document's engine
|
|
134
|
+
* (per-document, via the manager), the browser-facing ws URL, and `authorize`
|
|
135
|
+
* enforced before anything is signed.
|
|
136
|
+
*
|
|
137
|
+
* Extracted so the HTTP route and {@link issueCollaborationToken} cannot
|
|
138
|
+
* drift: a token minted outside the route has to be the same token, checked
|
|
139
|
+
* the same way, or the pre-issued path becomes a way around the permission
|
|
140
|
+
* seam.
|
|
141
|
+
*/
|
|
142
|
+
async function issueFor(runtime, user, docName) {
|
|
143
|
+
const settings = await runtime.settings();
|
|
144
|
+
const manager = await runtime.manager();
|
|
145
|
+
const engine = manager.engineFor ? await manager.engineFor({ docName }) : settings.engine;
|
|
146
|
+
// Asked of the manager, not resolved here: the manager is what the driver's
|
|
147
|
+
// handshake verifies against, and a second resolution order living in the
|
|
148
|
+
// routes is how an app ends up signing with one key and checking with
|
|
149
|
+
// another. A manager with no opinion (a test double) leaves it undefined and
|
|
150
|
+
// `issueToken` falls back to the same config/appKey lookup the driver does.
|
|
151
|
+
//
|
|
152
|
+
// Skipped for the edge engine, which signs with `partykit.jwtSecret`: asking
|
|
153
|
+
// for a key it will not use would fail a partykit-only deployment that never
|
|
154
|
+
// configured one.
|
|
155
|
+
const selfHostedSecret = engine === 'partykit' || engine === 'partyserver' || !manager.tokenSecret
|
|
156
|
+
? undefined
|
|
157
|
+
: await manager.tokenSecret();
|
|
158
|
+
return issueToken({
|
|
159
|
+
engine,
|
|
160
|
+
path: settings.path,
|
|
161
|
+
partykit: settings.partykit,
|
|
162
|
+
...(selfHostedSecret ? { tokenSecret: selfHostedSecret } : {}),
|
|
163
|
+
}, user, docName, runtime.authorize);
|
|
164
|
+
}
|
|
132
165
|
async function handleToken(ctx, runtime, userResolver) {
|
|
133
166
|
const docName = ctx.request.qs().doc;
|
|
134
167
|
if (!docName || typeof docName !== 'string') {
|
|
@@ -148,10 +181,7 @@ async function handleToken(ctx, runtime, userResolver) {
|
|
|
148
181
|
return ctx.response.status(401).json({ error: 'unauthenticated' });
|
|
149
182
|
}
|
|
150
183
|
try {
|
|
151
|
-
|
|
152
|
-
const manager = await runtime.manager();
|
|
153
|
-
const engine = manager.engineFor ? await manager.engineFor({ docName }) : settings.engine;
|
|
154
|
-
return await issueToken({ engine, path: settings.path, partykit: settings.partykit }, user, docName, runtime.authorize);
|
|
184
|
+
return await issueFor(runtime, user, docName);
|
|
155
185
|
}
|
|
156
186
|
catch (error) {
|
|
157
187
|
if (error instanceof CollabForbiddenError) {
|
|
@@ -321,6 +351,37 @@ export function collaborationRoutes(router, options = {}) {
|
|
|
321
351
|
function registerRoute(router, method, pattern, handler) {
|
|
322
352
|
router[method](pattern, handler);
|
|
323
353
|
}
|
|
354
|
+
/**
|
|
355
|
+
* Auth stacks that never populate `ctx.auth.user`.
|
|
356
|
+
*
|
|
357
|
+
* `@adonis-agora/authkit` resolves the user **on demand**: `check()` verifies
|
|
358
|
+
* the session and returns `true`, but the user itself only materialises when
|
|
359
|
+
* something asks for it — `getUserOrFail()`, which is what the app's own
|
|
360
|
+
* controllers call. Reading `auth.user` after `check()` therefore finds
|
|
361
|
+
* `undefined`, and this resolver answered 401 for a caller the app considered
|
|
362
|
+
* perfectly authenticated. Every app hitting it wrote the same three-line
|
|
363
|
+
* `resolveUser` by hand.
|
|
364
|
+
*
|
|
365
|
+
* `getUser()` is tried first because it reports absence by returning nothing;
|
|
366
|
+
* `getUserOrFail()` reports it by throwing, and a throw here is still just an
|
|
367
|
+
* absent user — never a 500.
|
|
368
|
+
*/
|
|
369
|
+
async function resolveUserOnDemand(auth) {
|
|
370
|
+
for (const method of ['getUser', 'getUserOrFail']) {
|
|
371
|
+
const resolver = auth[method];
|
|
372
|
+
if (typeof resolver !== 'function')
|
|
373
|
+
continue;
|
|
374
|
+
try {
|
|
375
|
+
const resolved = await resolver.call(auth);
|
|
376
|
+
if (resolved)
|
|
377
|
+
return resolved;
|
|
378
|
+
}
|
|
379
|
+
catch {
|
|
380
|
+
// Absent user, reported as 401 by the caller.
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
return undefined;
|
|
384
|
+
}
|
|
324
385
|
/**
|
|
325
386
|
* Default auth resolution.
|
|
326
387
|
*
|
|
@@ -331,7 +392,16 @@ function registerRoute(router, method, pattern, handler) {
|
|
|
331
392
|
* `/collaboration` prefix. Here `check()` is preferred because it reports
|
|
332
393
|
* failure by returning `false` instead of throwing.
|
|
333
394
|
*
|
|
334
|
-
*
|
|
395
|
+
* Then, when `auth.user` is *still* empty, it asks the guard for the user
|
|
396
|
+
* instead of assuming the guard would have left it lying around — see
|
|
397
|
+
* {@link resolveUserOnDemand}. Both steps are needed: one auth stack fills
|
|
398
|
+
* `user` as a side effect of `check()`, another only answers a direct
|
|
399
|
+
* question, and this resolver exists precisely so no app has to know which
|
|
400
|
+
* one it installed.
|
|
401
|
+
*
|
|
402
|
+
* Still fails closed. No user is a 401, an id that stringifies to nothing is
|
|
403
|
+
* a 401 (an "empty" user must never reach `authorize`, where a blank id could
|
|
404
|
+
* match a rule), and no path out of here is a 500.
|
|
335
405
|
*/
|
|
336
406
|
export const defaultResolveUser = async (ctx) => {
|
|
337
407
|
const auth = ctx.auth;
|
|
@@ -349,10 +419,78 @@ export const defaultResolveUser = async (ctx) => {
|
|
|
349
419
|
// never as a 500.
|
|
350
420
|
}
|
|
351
421
|
}
|
|
352
|
-
|
|
353
|
-
if (
|
|
422
|
+
let user = auth?.user;
|
|
423
|
+
if (auth && !user) {
|
|
424
|
+
user = (await resolveUserOnDemand(auth));
|
|
425
|
+
}
|
|
426
|
+
const id = user?.id === undefined || user?.id === null ? '' : String(user.id).trim();
|
|
427
|
+
if (!user || !id) {
|
|
354
428
|
throw new CollabUnauthorizedError('no authenticated user on context — protect these routes with your auth middleware or provide routes.resolveUser in config/collaboration.ts');
|
|
355
429
|
}
|
|
356
|
-
return { id
|
|
430
|
+
return { id, name: user.name ?? null };
|
|
357
431
|
};
|
|
432
|
+
/**
|
|
433
|
+
* Issues a document credential **outside** the token route.
|
|
434
|
+
*
|
|
435
|
+
* The problem it removes: `GET /collaboration/token` and the WebSocket are
|
|
436
|
+
* serialized. The browser cannot open the socket until the token comes back,
|
|
437
|
+
* so the first byte of the document is two round-trips away — and one of them
|
|
438
|
+
* is an HTTP request to the same server that just rendered the page and
|
|
439
|
+
* already knew everything the answer needed.
|
|
440
|
+
*
|
|
441
|
+
* Call this while rendering, hand the result to the page, and the client
|
|
442
|
+
* opens the socket on mount:
|
|
443
|
+
*
|
|
444
|
+
* ```ts
|
|
445
|
+
* // app/controllers/writing_controller.ts
|
|
446
|
+
* import { issueCollaborationToken } from '@adonis-agora/collaboration'
|
|
447
|
+
*
|
|
448
|
+
* const docName = `researches/${research.id}/writing`
|
|
449
|
+
* const collabToken = await issueCollaborationToken({ ctx, docName })
|
|
450
|
+
* return ctx.inertia.render('writing', { docName, collabToken })
|
|
451
|
+
* ```
|
|
452
|
+
*
|
|
453
|
+
* ```tsx
|
|
454
|
+
* <CollaborationProvider initialTokens={{ [docName]: collabToken }}>
|
|
455
|
+
* ```
|
|
456
|
+
*
|
|
457
|
+
* **It is the same token, checked the same way.** Engine resolution, `wsUrl`
|
|
458
|
+
* and `authorize` all come from {@link issueFor} — the function the route
|
|
459
|
+
* calls. A door that skipped the permission check because it was opened from
|
|
460
|
+
* a controller instead of a request would not be a shortcut, it would be a
|
|
461
|
+
* hole.
|
|
462
|
+
*
|
|
463
|
+
* Throws rather than returning a response, because there is no response here
|
|
464
|
+
* to return: {@link CollabUnauthorizedError} with no caller,
|
|
465
|
+
* {@link CollabForbiddenError} when `authorize` denies `canRead`. Let both
|
|
466
|
+
* bubble in a page controller and the page fails to render, which is the
|
|
467
|
+
* honest outcome — an editor rendered for someone who may not read the
|
|
468
|
+
* document is worse than an error.
|
|
469
|
+
*
|
|
470
|
+
* The result carries `engine` and `wsUrl` alongside the token: a bare token
|
|
471
|
+
* string is not enough for the client to build a transport, and asking it to
|
|
472
|
+
* fetch the missing halves would put back the round-trip this removes.
|
|
473
|
+
*/
|
|
474
|
+
export async function issueCollaborationToken(input, options = {}) {
|
|
475
|
+
const { docName } = input;
|
|
476
|
+
if (!docName || typeof docName !== 'string') {
|
|
477
|
+
throw new TypeError('issueCollaborationToken: "docName" is required');
|
|
478
|
+
}
|
|
479
|
+
if (!input.user && !input.ctx) {
|
|
480
|
+
throw new TypeError('issueCollaborationToken: pass either "user" or "ctx"');
|
|
481
|
+
}
|
|
482
|
+
const runtime = resolveRuntime(options, options.managerFallback);
|
|
483
|
+
let user = input.user ?? null;
|
|
484
|
+
if (!user && input.ctx) {
|
|
485
|
+
const appConfig = await readAppConfig();
|
|
486
|
+
const resolveUser = options.resolveUser ?? appConfig.routes?.resolveUser ?? defaultResolveUser;
|
|
487
|
+
// A resolver that throws CollabUnauthorizedError already says the right
|
|
488
|
+
// thing; anything else is a genuine failure and stays a failure.
|
|
489
|
+
user = (await resolveUser(input.ctx)) ?? null;
|
|
490
|
+
}
|
|
491
|
+
if (!user) {
|
|
492
|
+
throw new CollabUnauthorizedError();
|
|
493
|
+
}
|
|
494
|
+
return issueFor(runtime, user, docName);
|
|
495
|
+
}
|
|
358
496
|
//# sourceMappingURL=routes.js.map
|
package/dist/src/routes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/routes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/routes.ts"],"names":[],"mappings":"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"}
|
package/dist/src/types.d.ts
CHANGED
|
@@ -92,6 +92,37 @@ export interface LoadedCollabDocument {
|
|
|
92
92
|
/** State vector for differential sync (Yjs: state vector; Automerge: heads). */
|
|
93
93
|
vector: Uint8Array;
|
|
94
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Why {@link CollaborationManager.withLiveDocument} had no document to run on.
|
|
97
|
+
*
|
|
98
|
+
* The two are different operational facts and a caller that cannot tell them
|
|
99
|
+
* apart writes the wrong fallback: `not-loaded` is normal and temporary (open
|
|
100
|
+
* the document, or fall back to `getDocumentState`), while
|
|
101
|
+
* `engine-has-no-live-document` never changes for that document and means the
|
|
102
|
+
* whole approach is wrong for it.
|
|
103
|
+
*/
|
|
104
|
+
export type LiveDocumentAbsence =
|
|
105
|
+
/** The engine keeps documents in this process, but nobody has this one open here. */
|
|
106
|
+
'not-loaded'
|
|
107
|
+
/** The engine syncs elsewhere (PartyKit, on the edge): there is no in-process instance. */
|
|
108
|
+
| 'engine-has-no-live-document';
|
|
109
|
+
/**
|
|
110
|
+
* Outcome of {@link CollaborationManager.withLiveDocument} — what the callback
|
|
111
|
+
* returned, or why it never ran.
|
|
112
|
+
*
|
|
113
|
+
* A result, not an exception and not a bare `undefined`: "there is no live
|
|
114
|
+
* document" is an ordinary answer here (nobody has the document open), and a
|
|
115
|
+
* `T | undefined` would collapse it into a callback that legitimately returned
|
|
116
|
+
* `undefined`.
|
|
117
|
+
*/
|
|
118
|
+
export type LiveDocumentResult<T> = {
|
|
119
|
+
live: true;
|
|
120
|
+
value: T;
|
|
121
|
+
} | {
|
|
122
|
+
live: false;
|
|
123
|
+
value?: undefined;
|
|
124
|
+
reason: LiveDocumentAbsence;
|
|
125
|
+
};
|
|
95
126
|
/** A version registered in the document history. */
|
|
96
127
|
export interface CollabVersion {
|
|
97
128
|
/** Opaque reference for the driver (Yjs snapshot / Automerge hash). */
|
|
@@ -178,6 +209,20 @@ export interface CollaborationConfig {
|
|
|
178
209
|
* restart the document) — the rule alone will not do it.
|
|
179
210
|
*/
|
|
180
211
|
authorize?: (ctx: CollabConnectionContext, docName: string) => Promise<CollabPermission>;
|
|
212
|
+
/**
|
|
213
|
+
* Key that signs and verifies the self-hosted collaboration token.
|
|
214
|
+
*
|
|
215
|
+
* Optional because an AdonisJS app already has one: with nothing set here
|
|
216
|
+
* the library derives its key from the app's `appKey`, so the secure path
|
|
217
|
+
* is the path that requires no configuration. Set it to use a dedicated
|
|
218
|
+
* key, or when embedding the manager outside an Adonis app — a manager with
|
|
219
|
+
* neither refuses to issue or accept tokens rather than falling back to an
|
|
220
|
+
* unsigned format.
|
|
221
|
+
*
|
|
222
|
+
* Rotating it invalidates every outstanding token. Clients reconnect and
|
|
223
|
+
* fetch a new one, so the visible cost is one reconnect.
|
|
224
|
+
*/
|
|
225
|
+
tokenSecret?: string;
|
|
181
226
|
/** Redis for cross-instance presence (optional in single-instance dev). */
|
|
182
227
|
redis?: {
|
|
183
228
|
url: string;
|
package/dist/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,WAAW,GAAG,UAAU,GAAG,aAAa,CAAC;AAEnF;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,+EAA+E;IAC/E,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,MAAM,aAAa,GACrB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GACxE;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAChF;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEpD,qEAAqE;AACrE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,MAAM,CAAC;IACrB,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,mEAAmE;AACnE,MAAM,WAAW,uBAAuB;IACtC,kFAAkF;IAClF,MAAM,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,IAAI,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;CACrD;AAED,yDAAyD;AACzD,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,sDAAsD;IACtD,QAAQ,EAAE,OAAO,CAAC;IAClB,4DAA4D;IAC5D,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,mDAAmD;AACnD,MAAM,WAAW,oBAAoB;IACnC,gEAAgE;IAChE,KAAK,EAAE,UAAU,CAAC;IAClB,gFAAgF;IAChF,MAAM,EAAE,UAAU,CAAC;CACpB;AAED,oDAAoD;AACpD,MAAM,WAAW,aAAa;IAC5B,uEAAuE;IACvE,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,+CAA+C;IAC/C,GAAG,EAAE,MAAM,CAAC;CACb;AAED,4CAA4C;AAC5C,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,6DAA6D;AAC7D,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,UAAU,CAAA;KAAE,GAAG,IAAI,CAAC,CAAC;IACrE,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChG,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACxD,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1F,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;IACpF;;;OAGG;IACH,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9D,yCAAyC;IACzC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;IACxE;;;;;OAKG;IACH,UAAU,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAAC;IAC/E,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAClE;AAED,6BAA6B;AAC7B,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,mBAAmB,CAAC;IAC5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACpF;;;;OAIG;IAEH,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,gBAAgB,EAAE,yBAAyB,CAAC,GAAG,CAAC,CAAC,CAAC;IACpF,2EAA2E;IAC3E,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B;;;;;;;;;;;OAWG;IACH,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACzF,2EAA2E;IAC3E,KAAK,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC;IACxB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iDAAiD;IACjD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,6 +22,14 @@ export default defineConfig({
|
|
|
22
22
|
/** Persist debounce in ms (onStoreDocument). */
|
|
23
23
|
debounce: 2000,
|
|
24
24
|
|
|
25
|
+
/**
|
|
26
|
+
* Signing key for the collaboration token (HS256, 5-minute TTL, bound to a
|
|
27
|
+
* single document). Omitted = derived from the app's appKey, which is what
|
|
28
|
+
* you want in almost every case. Set it only for a dedicated secret; with
|
|
29
|
+
* no key anywhere the library refuses to issue or accept tokens.
|
|
30
|
+
*/
|
|
31
|
+
// tokenSecret: env.get('COLLAB_TOKEN_SECRET'),
|
|
32
|
+
|
|
25
33
|
/**
|
|
26
34
|
* Authorization per document. Return canRead/canWrite/canComment; the
|
|
27
35
|
* driver drops the connection when canRead is false.
|
|
@@ -23,7 +23,20 @@ interface CollabToken {
|
|
|
23
23
|
exp: number;
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
|
|
26
|
+
/**
|
|
27
|
+
* Signature + expiry + **document binding**.
|
|
28
|
+
*
|
|
29
|
+
* `expectedDocName` is not optional decoration: the room IS the document, and
|
|
30
|
+
* a token is issued for one document only. Without this comparison a token
|
|
31
|
+
* legitimately obtained for a document the caller may read would open every
|
|
32
|
+
* other room on the worker — the client picks the room, the server only
|
|
33
|
+
* checked that the signature was ours.
|
|
34
|
+
*/
|
|
35
|
+
async function verifyToken(
|
|
36
|
+
token: string | null,
|
|
37
|
+
secret: string,
|
|
38
|
+
expectedDocName: string,
|
|
39
|
+
): Promise<CollabToken | null> {
|
|
27
40
|
if (!token) return null;
|
|
28
41
|
const parts = token.split('.');
|
|
29
42
|
if (parts.length !== 3) return null;
|
|
@@ -45,12 +58,25 @@ function verifyToken(token: string | null, secret: string): Promise<CollabToken
|
|
|
45
58
|
try {
|
|
46
59
|
const parsed = JSON.parse(Buffer.from(body, 'base64url').toString()) as CollabToken;
|
|
47
60
|
if (!parsed.userId || !parsed.docName || parsed.exp * 1000 < Date.now()) return null;
|
|
61
|
+
if (parsed.docName !== expectedDocName) return null;
|
|
48
62
|
return parsed;
|
|
49
63
|
} catch {
|
|
50
64
|
return null;
|
|
51
65
|
}
|
|
52
66
|
}
|
|
53
67
|
|
|
68
|
+
/**
|
|
69
|
+
* The room being addressed, read from the URL: `/parties/<party>/<room>`.
|
|
70
|
+
*
|
|
71
|
+
* Taken from the path rather than from the token, obviously — the whole point
|
|
72
|
+
* is to compare the two. Rejoined because a document name contains slashes
|
|
73
|
+
* (`researches/42/writing`) and travels percent-encoded in that last segment.
|
|
74
|
+
*/
|
|
75
|
+
function roomFromUrl(url: string): string {
|
|
76
|
+
const segments = new URL(url).pathname.split('/').slice(3).filter(Boolean);
|
|
77
|
+
return decodeURIComponent(segments.join('/'));
|
|
78
|
+
}
|
|
79
|
+
|
|
54
80
|
export default class CollabParty implements PartyServer {
|
|
55
81
|
/** Doc vivo do room — populado pelo primeiro ciclo load/callback. */
|
|
56
82
|
private liveDoc?: Y.Doc;
|
|
@@ -60,7 +86,7 @@ export default class CollabParty implements PartyServer {
|
|
|
60
86
|
static async onBeforeConnect(request: PartyRequest, lobby: { context: PartyConnectionContext }) {
|
|
61
87
|
const secret = lobby.context.party.env.COLLAB_JWT_SECRET as string | undefined;
|
|
62
88
|
const token = new URL(request.url).searchParams.get('token');
|
|
63
|
-
const claims = await verifyToken(token, secret ?? '');
|
|
89
|
+
const claims = await verifyToken(token, secret ?? '', roomFromUrl(request.url));
|
|
64
90
|
if (!claims) {
|
|
65
91
|
return new Response('invalid or expired token', { status: 401 });
|
|
66
92
|
}
|
|
@@ -109,9 +135,14 @@ export default class CollabParty implements PartyServer {
|
|
|
109
135
|
async onRequest(request: PartyRequest): Promise<Response> {
|
|
110
136
|
const secret = this.party.env.COLLAB_JWT_SECRET as string | undefined;
|
|
111
137
|
const url = new URL(request.url);
|
|
138
|
+
const room = this.docName;
|
|
112
139
|
const claims =
|
|
113
|
-
(await verifyToken(url.searchParams.get('token'), secret ?? '')) ??
|
|
114
|
-
(await verifyToken(
|
|
140
|
+
(await verifyToken(url.searchParams.get('token'), secret ?? '', room)) ??
|
|
141
|
+
(await verifyToken(
|
|
142
|
+
request.headers.get('authorization')?.replace(/^Bearer /, '') ?? '',
|
|
143
|
+
secret ?? '',
|
|
144
|
+
room,
|
|
145
|
+
));
|
|
115
146
|
if (!claims) {
|
|
116
147
|
return new Response('unauthenticated', { status: 401 });
|
|
117
148
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@adonis-agora/collaboration",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.0",
|
|
4
4
|
"description": "Collaborative editing (CRDT) for AdonisJS 7 — Yjs (Hocuspocus) and Automerge drivers, Redis-backed presence, unified version control. Part of the Agora ecosystem.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"repository": {
|