n8n-nodes-kinescope 0.1.0 → 0.2.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/README.md CHANGED
@@ -10,7 +10,7 @@ Written from scratch against the official documentation
10
10
  ([docs.kinescope.com/api](https://docs.kinescope.com/api/speak/), read on 22.10.2026). No code from
11
11
  any other package.
12
12
 
13
- **Status: 0.1.0.** Every operation ran against a live Kinescope workspace, the trigger included;
13
+ **Status: 0.2.0.** Every operation ran against a live Kinescope workspace, the trigger included;
14
14
  the two transcript operations ran but never met a transcript. See [What was checked](#what-was-checked). Where Kinescope behaves differently from its
15
15
  documentation, this README says so.
16
16
 
@@ -47,7 +47,7 @@ node: its *Allowed HTTP Request Domains* setting is pinned to none, so the token
47
47
  another server by pointing a generic node at it. Use **Custom Request** for a route the other
48
48
  operations lack.
49
49
 
50
- **Signing Private Key** and **Signing Key ID** are optional and serve Room → Get Admin Link only; see
50
+ **Admin Link Signing Key** serves Room → Get Admin Link only and needs nothing by default; see
51
51
  [Admin links](#admin-links).
52
52
 
53
53
  ## Kinescope node
@@ -81,17 +81,27 @@ It is the token of Kinescope's
81
81
  [Speak login link](https://docs.kinescope.com/developer-guides/speak-admin-login-link/) — RS256,
82
82
  `aud: speak`, the room code, `role: admin` — signed in n8n with a private key Kinescope never sees.
83
83
 
84
- 1. Make an RSA key: `openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out speak.pem`.
85
- 2. Paste the file's content into **Signing Private Key** of the credential and give it a **Signing
86
- Key ID**, any name unique in the workspace. A PEM pasted into the one-line field loses its line
87
- breaks; the node puts them back.
88
- 3. Run **Signing Key → Register** once, with an expiry date (Kinescope requires one). It sends
89
- Kinescope the public half only.
90
- 4. **Room → Get Admin Link** with Valid For in minutes; keep it close to the meeting's length.
84
+ **There is nothing to set up.** With Admin Link Signing Key on *Generated by n8n*, the default, n8n
85
+ makes an RSA key on the first request with the credential and keeps it in the credential, encrypted
86
+ and blanked out in the editor. The first admin link registers its public half with Kinescope, valid
87
+ for 100 years, under an ID taken from the key itself (`n8n-` and 16 hex digits). On n8n 2.38.5 the
88
+ key stayed the same from one execution to the next and after the credential was saved again from the
89
+ editor.
91
90
 
92
- Anyone holding such a link is admin of that room until it expires — send it to the host, not to a
93
- channel. Signing Key → Delete stops every link signed with the key at once. Kinescope uses the same
94
- keys for stream chat tokens, telling them apart by `aud`.
91
+ - A copy of a credential — duplicated, or imported on another n8n — carries the same key. Two
92
+ credentials have two keys, both registered; neither touches the other's.
93
+ - A credential that loses its key, e.g. one created anew, gets a new one with its next request. Links
94
+ signed before keep working: the old public key stays in Kinescope until you delete it.
95
+ - **After a leak, replace the credential first**, then remove the old key with Signing Key → Delete.
96
+ A credential still holding the key registers it again with its next admin link.
97
+
98
+ With *My Own Key* the node signs with a key you paste — from
99
+ `openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048` — under an ID you choose. The first
100
+ link registers it for 100 years; Signing Key → Register sets another expiry if you run it first. A
101
+ PEM pasted into the one-line field loses its line breaks; the node puts them back.
102
+
103
+ Anyone holding an admin link is admin of that room until Valid For runs out — send it to the host,
104
+ not to a channel. Kinescope uses the same keys for stream chat tokens, telling them apart by `aud`.
95
105
 
96
106
  **Participant** is a workspace user given a role in a room ahead of a meeting: Admin or Manager, both
97
107
  need a user ID, and a user can be added once. The owner is in the room already. Update changes the
@@ -229,6 +239,8 @@ runtime:
229
239
  video and an audio track; Video → Delete on the test recordings;
230
240
  - the trigger's registration, re-registration and removal against the API, and a real Kinescope
231
241
  delivery with its Basic Auth header;
242
+ - the generated signing key in n8n 2.38.5 itself: made on the first request, the same key in later
243
+ executions and after the credential was saved again from the editor, blanked out in the editor;
232
244
  - the error texts for a malformed ID, a missing call, a refused event, a sort field Kinescope does not
233
245
  take, and a file a video does not have.
234
246
 
@@ -1,4 +1,4 @@
1
- import type { IAuthenticateGeneric, Icon, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
1
+ import type { IAuthenticateGeneric, ICredentialDataDecryptedObject, Icon, ICredentialTestRequest, ICredentialType, IDataObject, IHttpRequestHelper, INodeProperties } from 'n8n-workflow';
2
2
  export declare const API_ORIGIN = "https://api.kinescope.io";
3
3
  export declare function normalizeApiToken(raw: unknown): string;
4
4
  export declare class KinescopeWorkspaceApi implements ICredentialType {
@@ -7,6 +7,7 @@ export declare class KinescopeWorkspaceApi implements ICredentialType {
7
7
  documentationUrl: string;
8
8
  icon: Icon;
9
9
  properties: INodeProperties[];
10
+ preAuthentication(this: IHttpRequestHelper, credentials: ICredentialDataDecryptedObject): Promise<IDataObject>;
10
11
  authenticate: IAuthenticateGeneric;
11
12
  test: ICredentialTestRequest;
12
13
  }
@@ -2,6 +2,16 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.KinescopeWorkspaceApi = exports.API_ORIGIN = void 0;
4
4
  exports.normalizeApiToken = normalizeApiToken;
5
+ const node_crypto_1 = require("node:crypto");
6
+ async function generateSigningKey() {
7
+ return await new Promise((resolve, reject) => {
8
+ (0, node_crypto_1.generateKeyPair)('rsa', {
9
+ modulusLength: 2048,
10
+ publicKeyEncoding: { type: 'spki', format: 'pem' },
11
+ privateKeyEncoding: { type: 'pkcs8', format: 'pem' },
12
+ }, (error, _publicKey, privateKey) => (error ? reject(error) : resolve(privateKey)));
13
+ });
14
+ }
5
15
  exports.API_ORIGIN = 'https://api.kinescope.io';
6
16
  const TOKEN_EXPRESSION = 'String($credentials.apiToken || "").trim().replace(/^Bearer\\s+/i, "")';
7
17
  function normalizeApiToken(raw) {
@@ -27,10 +37,23 @@ class KinescopeWorkspaceApi {
27
37
  description: 'A token from Settings → API tokens in Kinescope. It acts for the whole workspace it was issued in; give each integration its own token so one can be revoked without breaking the others.',
28
38
  },
29
39
  {
30
- displayName: 'The two fields below are needed only for Room → Get Admin Link, which signs Speak links that let a person in as room admin. Leave them empty otherwise.',
31
- name: 'signingNotice',
32
- type: 'notice',
33
- default: '',
40
+ displayName: 'Admin Link Signing Key',
41
+ name: 'signingKeySource',
42
+ type: 'options',
43
+ default: 'generated',
44
+ options: [
45
+ {
46
+ name: 'Generated by n8n',
47
+ value: 'generated',
48
+ description: 'n8n makes a key on first use and keeps it, encrypted, in this credential. Nothing to fill in.',
49
+ },
50
+ {
51
+ name: 'My Own Key',
52
+ value: 'own',
53
+ description: 'Paste an RSA private key and give it an ID',
54
+ },
55
+ ],
56
+ description: 'The key Room → Get Admin Link signs Speak links with. Kinescope receives its public half the first time a link is made.',
34
57
  },
35
58
  {
36
59
  displayName: 'Signing Private Key',
@@ -39,7 +62,8 @@ class KinescopeWorkspaceApi {
39
62
  typeOptions: { password: true },
40
63
  default: '',
41
64
  placeholder: '-----BEGIN PRIVATE KEY----- …',
42
- description: 'An RSA private key in PEM form, e.g. from: openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048. It never leaves n8n; Signing Key → Register gives Kinescope its public half.',
65
+ displayOptions: { show: { signingKeySource: ['own'] } },
66
+ description: 'An RSA private key in PEM form, e.g. from: openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048. It never leaves n8n; Kinescope gets its public half.',
43
67
  },
44
68
  {
45
69
  displayName: 'Signing Key ID',
@@ -47,8 +71,16 @@ class KinescopeWorkspaceApi {
47
71
  type: 'string',
48
72
  default: '',
49
73
  placeholder: 'n8n-2026-10',
74
+ displayOptions: { show: { signingKeySource: ['own'] } },
50
75
  description: 'A name for the key, unique in the workspace (Kinescope calls it kid). It goes into every signed link so Kinescope knows which public key to check it with.',
51
76
  },
77
+ {
78
+ displayName: 'Generated Private Key',
79
+ name: 'generatedPrivateKey',
80
+ type: 'hidden',
81
+ typeOptions: { expirable: true, password: true },
82
+ default: '',
83
+ },
52
84
  {
53
85
  displayName: 'Allowed HTTP Request Domains',
54
86
  name: 'allowedHttpRequestDomains',
@@ -89,6 +121,14 @@ class KinescopeWorkspaceApi {
89
121
  ],
90
122
  };
91
123
  }
124
+ async preAuthentication(credentials) {
125
+ var _a;
126
+ if (String((_a = credentials.generatedPrivateKey) !== null && _a !== void 0 ? _a : '') !== '')
127
+ return {};
128
+ if (credentials.signingKeySource === 'own')
129
+ return {};
130
+ return { generatedPrivateKey: await generateSigningKey() };
131
+ }
92
132
  }
93
133
  exports.KinescopeWorkspaceApi = KinescopeWorkspaceApi;
94
134
  //# sourceMappingURL=KinescopeWorkspaceApi.credentials.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"KinescopeWorkspaceApi.credentials.js","sourceRoot":"","sources":["../../credentials/KinescopeWorkspaceApi.credentials.ts"],"names":[],"mappings":";;;AAwBA,8CAIC;AAbY,QAAA,UAAU,GAAG,0BAA0B,CAAC;AAMrD,MAAM,gBAAgB,GAAG,wEAAwE,CAAC;AAGlG,SAAgB,iBAAiB,CAAC,GAAY;IAC7C,OAAO,MAAM,CAAC,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,EAAE,CAAC;SACtB,IAAI,EAAE;SACN,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;AAC9B,CAAC;AAED,MAAa,qBAAqB;IAAlC;QACC,SAAI,GAAG,uBAAuB,CAAC;QAE/B,gBAAW,GAAG,eAAe,CAAC;QAE9B,qBAAgB,GAAG,gEAAgE,CAAC;QAEpF,SAAI,GAAS,EAAE,KAAK,EAAE,6BAA6B,EAAE,IAAI,EAAE,kCAAkC,EAAE,CAAC;QAEhG,eAAU,GAAsB;YAC/B;gBACC,WAAW,EAAE,WAAW;gBACxB,IAAI,EAAE,UAAU;gBAChB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,sCAAsC;gBACnD,WAAW,EACV,2LAA2L;aAC5L;YACD;gBACC,WAAW,EACV,yJAAyJ;gBAC1J,IAAI,EAAE,eAAe;gBACrB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;aACX;YACD;gBACC,WAAW,EAAE,qBAAqB;gBAClC,IAAI,EAAE,mBAAmB;gBACzB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,+BAA+B;gBAC5C,WAAW,EACV,uLAAuL;aACxL;YACD;gBACC,WAAW,EAAE,gBAAgB;gBAC7B,IAAI,EAAE,cAAc;gBACpB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,EAAE;gBACX,WAAW,EAAE,aAAa;gBAC1B,WAAW,EACV,4JAA4J;aAC7J;YACD;gBAOC,WAAW,EAAE,8BAA8B;gBAC3C,IAAI,EAAE,2BAA2B;gBACjC,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,MAAM;aACf;SACD,CAAC;QAEF,iBAAY,GAAyB;YACpC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACX,OAAO,EAAE;oBACR,aAAa,EAAE,cAAc,gBAAgB,KAAK;iBAClD;aACD;SACD,CAAC;QAGF,SAAI,GAA2B;YAC9B,OAAO,EAAE;gBACR,OAAO,EAAE,kBAAU;gBACnB,GAAG,EAAE,iBAAiB;gBACtB,MAAM,EAAE,KAAK;gBACb,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE;aAC5B;YACD,KAAK,EAAE;gBACN;oBACC,IAAI,EAAE,cAAc;oBACpB,UAAU,EAAE;wBACX,KAAK,EAAE,GAAG;wBACV,OAAO,EACN,iJAAiJ;qBAClJ;iBACD;gBACD;oBACC,IAAI,EAAE,cAAc;oBACpB,UAAU,EAAE;wBACX,KAAK,EAAE,GAAG;wBACV,OAAO,EACN,kGAAkG;qBACnG;iBACD;aACD;SACD,CAAC;IACH,CAAC;CAAA;AAjGD,sDAiGC"}
1
+ {"version":3,"file":"KinescopeWorkspaceApi.credentials.js","sourceRoot":"","sources":["../../credentials/KinescopeWorkspaceApi.credentials.ts"],"names":[],"mappings":"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"}
@@ -306,7 +306,7 @@ exports.roomResource = {
306
306
  value: 'getAdminLink',
307
307
  name: 'Get Admin Link',
308
308
  action: 'Get an admin link to a room',
309
- description: 'Sign a Speak link that lets whoever opens it into the room as admin: recording, access control, the waiting room. Needs the signing key of the credential, registered with Signing Key → Register.',
309
+ description: 'Sign a Speak link that lets whoever opens it into the room as admin: recording, access control, the waiting room. The first link registers the signing key of the credential with Kinescope.',
310
310
  properties: [
311
311
  (0, props_1.roomProperty)(),
312
312
  {
@@ -320,8 +320,9 @@ exports.roomResource = {
320
320
  ],
321
321
  async execute(itemIndex) {
322
322
  var _a;
323
- const { key, kid } = await jwt_1.signingKey.call(this, itemIndex);
324
323
  const room = (0, transport_1.dataOf)(await transport_1.kinescopeRequest.call(this, 'GET', roomPath(this, itemIndex), { itemIndex }));
324
+ const { key, kid } = await jwt_1.signingKey.call(this, itemIndex);
325
+ await jwt_1.ensureRegistered.call(this, key, kid, itemIndex);
325
326
  const code = String((_a = room.code) !== null && _a !== void 0 ? _a : '').trim();
326
327
  const minutes = Math.max(1, Number(this.getNodeParameter('validMinutes', itemIndex, 180)) || 180);
327
328
  const now = Math.floor(Date.now() / 1000);
@@ -1 +1 @@
1
- {"version":3,"file":"room.js","sourceRoot":"","sources":["../../../../nodes/Kinescope/resources/room.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"room.js","sourceRoot":"","sources":["../../../../nodes/Kinescope/resources/room.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@ exports.signingKeyResource = {
15
15
  value: 'register',
16
16
  name: 'Register',
17
17
  action: 'Register the credential signing key',
18
- description: 'Give Kinescope the public half of the private key in the credential, under its Signing Key ID, so that Room → Get Admin Link works. Do this once per key.',
18
+ description: 'Give Kinescope the public half of the signing key of the credential with an expiry of your choice. Optional: the first Room → Get Admin Link registers the key by itself, valid for 100 years.',
19
19
  properties: [
20
20
  {
21
21
  displayName: 'Expires At',
@@ -27,15 +27,23 @@ exports.signingKeyResource = {
27
27
  },
28
28
  ],
29
29
  async execute(itemIndex) {
30
+ const keys = await transport_1.readPages.call(this, '/v1/jwk', {}, undefined, itemIndex);
30
31
  const { key, kid } = await jwt_1.signingKey.call(this, itemIndex);
32
+ const jwk = (0, jwt_1.publicJwk)(key, kid);
33
+ const existing = keys.find((entry) => String(entry.kid) === kid);
34
+ if (existing !== undefined) {
35
+ if (String(existing.n) === String(jwk.n))
36
+ return { ...existing, alreadyRegistered: true };
37
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Another key is registered as ${kid}`, {
38
+ itemIndex,
39
+ description: 'Give the credential another Signing Key ID, or delete the old key with Signing Key → Delete first.',
40
+ });
41
+ }
31
42
  const expires = new Date((0, params_1.requiredText)(this, 'expiresAt', itemIndex, 'Expires At'));
32
43
  if (Number.isNaN(expires.getTime())) {
33
44
  throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'Expires At is not a date', { itemIndex });
34
45
  }
35
- const body = {
36
- ...(0, jwt_1.publicJwk)(key, kid),
37
- expires_at: expires.toISOString().replace(/\.\d+Z$/, 'Z'),
38
- };
46
+ const body = { ...jwk, expires_at: expires.toISOString().replace(/\.\d+Z$/, 'Z') };
39
47
  return (0, transport_1.dataOf)(await transport_1.kinescopeRequest.call(this, 'POST', '/v1/jwk', { body, itemIndex, retry: false }));
40
48
  },
41
49
  },
@@ -53,7 +61,7 @@ exports.signingKeyResource = {
53
61
  value: 'delete',
54
62
  name: 'Delete',
55
63
  action: 'Delete a signing key',
56
- description: 'Remove a public key: every link and chat token signed with it stops working at once. Use it when a private key leaked.',
64
+ description: 'Remove a public key: every link and chat token signed with it stops working at once. After a leak, replace the credential first — a credential still holding the key registers it again with its next admin link.',
57
65
  properties: [
58
66
  (0, props_1.idProperty)('Key Record ID', 'jwkId', 'The jwk_id of the key as Get Many or Register returns it, not its Signing Key ID'),
59
67
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"signingKey.js","sourceRoot":"","sources":["../../../../nodes/Kinescope/resources/signingKey.ts"],"names":[],"mappings":";;;AACA,+CAAkD;AAElD,6CAA4D;AAC5D,mDAAuF;AAEvF,yDAAyF;AACzF,oCAAsC;AAMzB,QAAA,kBAAkB,GAAa;IAC3C,KAAK,EAAE,YAAY;IACnB,IAAI,EAAE,aAAa;IACnB,WAAW,EACV,sFAAsF;IACvF,UAAU,EAAE;QACX;YACC,KAAK,EAAE,UAAU;YACjB,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,qCAAqC;YAC7C,WAAW,EACV,2JAA2J;YAC5J,UAAU,EAAE;gBACX;oBACC,WAAW,EAAE,YAAY;oBACzB,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,UAAU;oBAChB,QAAQ,EAAE,IAAI;oBACd,OAAO,EAAE,EAAE;oBACX,WAAW,EACV,uFAAuF;iBACxF;aACD;YACD,KAAK,CAAC,OAAO,CAAC,SAAS;gBACtB,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,MAAM,gBAAU,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;gBAC5D,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAA,qBAAY,EAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;gBACnF,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;oBACrC,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,0BAA0B,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;gBACzF,CAAC;gBACD,MAAM,IAAI,GAAG;oBACZ,GAAG,IAAA,eAAS,EAAC,GAAG,EAAE,GAAG,CAAC;oBACtB,UAAU,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;iBACzD,CAAC;gBACF,OAAO,IAAA,kBAAM,EACZ,MAAM,4BAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CACvF,CAAC;YACH,CAAC;SACD;QACD;YACC,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,UAAU;YAChB,MAAM,EAAE,uBAAuB;YAC/B,WAAW,EAAE,4EAA4E;YACzF,UAAU,EAAE,IAAA,4BAAmB,EAAC,MAAM,CAAC;YACvC,KAAK,CAAC,OAAO,CAAC,SAAS;gBACtB,OAAO,MAAM,qBAAS,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAA,mBAAU,EAAC,IAAI,EAAE,SAAS,CAAC,EAAE,SAAS,CAAC,CAAC;YAC1F,CAAC;SACD;QACD;YACC,KAAK,EAAE,QAAQ;YACf,IAAI,EAAE,QAAQ;YACd,MAAM,EAAE,sBAAsB;YAC9B,WAAW,EACV,wHAAwH;YACzH,UAAU,EAAE;gBACX,IAAA,kBAAU,EACT,eAAe,EACf,OAAO,EACP,kFAAkF,CAClF;aACD;YACD,KAAK,CAAC,OAAO,CAAC,SAAS;gBACtB,MAAM,EAAE,GAAG,IAAA,qBAAY,EAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC;gBAEnE,MAAM,4BAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,WAAW,IAAA,mBAAO,EAAC,EAAE,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC;gBACrF,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,EAAiB,CAAC;YAC7C,CAAC;SACD;KACD;CACD,CAAC"}
1
+ {"version":3,"file":"signingKey.js","sourceRoot":"","sources":["../../../../nodes/Kinescope/resources/signingKey.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  import { type KeyObject } from 'node:crypto';
2
2
  import type { IDataObject, IExecuteFunctions } from 'n8n-workflow';
3
3
  export declare function normalizePem(raw: string): string;
4
+ export declare function publicJwk(key: KeyObject, kid: string): IDataObject;
5
+ export declare function generatedKeyId(key: KeyObject): string;
4
6
  export declare function signingKey(this: IExecuteFunctions, itemIndex: number): Promise<{
5
7
  key: KeyObject;
6
8
  kid: string;
7
9
  }>;
8
- export declare function publicJwk(key: KeyObject, kid: string): IDataObject;
10
+ export declare function ensureRegistered(this: IExecuteFunctions, key: KeyObject, kid: string, itemIndex: number): Promise<void>;
9
11
  export declare function signJwt(key: KeyObject, kid: string, claims: IDataObject): string;
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.normalizePem = normalizePem;
4
- exports.signingKey = signingKey;
5
4
  exports.publicJwk = publicJwk;
5
+ exports.generatedKeyId = generatedKeyId;
6
+ exports.signingKey = signingKey;
7
+ exports.ensureRegistered = ensureRegistered;
6
8
  exports.signJwt = signJwt;
7
9
  const node_crypto_1 = require("node:crypto");
8
10
  const n8n_workflow_1 = require("n8n-workflow");
@@ -17,15 +19,30 @@ function normalizePem(raw) {
17
19
  const lines = (_a = body.match(/.{1,64}/g)) !== null && _a !== void 0 ? _a : [];
18
20
  return `-----BEGIN ${match[1]}-----\n${lines.join('\n')}\n-----END ${match[1]}-----\n`;
19
21
  }
22
+ function publicJwk(key, kid) {
23
+ const jwk = (0, node_crypto_1.createPublicKey)(key).export({ format: 'jwk' });
24
+ return { kty: 'RSA', e: jwk.e, n: jwk.n, use: 'sig', alg: 'RS256', kid };
25
+ }
26
+ function generatedKeyId(key) {
27
+ const n = String((0, node_crypto_1.createPublicKey)(key).export({ format: 'jwk' }).n);
28
+ return `n8n-${(0, node_crypto_1.createHash)('sha256').update(n).digest('hex').slice(0, 16)}`;
29
+ }
20
30
  async function signingKey(itemIndex) {
21
31
  var _a, _b;
22
32
  const credentials = await this.getCredentials(transport_1.CREDENTIAL);
23
- const pem = String((_a = credentials.signingPrivateKey) !== null && _a !== void 0 ? _a : '').trim();
24
- const kid = String((_b = credentials.signingKeyId) !== null && _b !== void 0 ? _b : '').trim();
25
- if (pem === '' || kid === '') {
33
+ const own = credentials.signingKeySource === 'own';
34
+ const pem = String((_a = (own ? credentials.signingPrivateKey : credentials.generatedPrivateKey)) !== null && _a !== void 0 ? _a : '').trim();
35
+ const ownKid = String((_b = credentials.signingKeyId) !== null && _b !== void 0 ? _b : '').trim();
36
+ if (own && (pem === '' || ownKid === '')) {
26
37
  throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'The credential has no signing key', {
27
38
  itemIndex,
28
- description: 'Fill in Signing Private Key and Signing Key ID in the Kinescope API credential, then register the key once with Signing Key → Register.',
39
+ description: 'Admin Link Signing Key is set to My Own Key: fill in Signing Private Key and Signing Key ID, or switch it to Generated by n8n.',
40
+ });
41
+ }
42
+ if (pem === '') {
43
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), 'n8n has not stored a generated signing key', {
44
+ itemIndex,
45
+ description: 'n8n makes the key on the first request with this credential and keeps it there. If this persists, set Admin Link Signing Key to My Own Key and paste a key.',
29
46
  });
30
47
  }
31
48
  let key;
@@ -44,11 +61,41 @@ async function signingKey(itemIndex) {
44
61
  description: 'Kinescope verifies tokens with RS256 only.',
45
62
  });
46
63
  }
47
- return { key, kid };
64
+ return { key, kid: own ? ownKid : generatedKeyId(key) };
48
65
  }
49
- function publicJwk(key, kid) {
50
- const jwk = (0, node_crypto_1.createPublicKey)(key).export({ format: 'jwk' });
51
- return { kty: 'RSA', e: jwk.e, n: jwk.n, use: 'sig', alg: 'RS256', kid };
66
+ const FIRST_USE_VALIDITY_YEARS = 100;
67
+ const registered = new Set();
68
+ async function ensureRegistered(key, kid, itemIndex) {
69
+ var _a;
70
+ const jwk = publicJwk(key, kid);
71
+ const memo = `${await transport_1.workspaceKey.call(this)}:${kid}:${String(jwk.n).slice(0, 32)}`;
72
+ if (registered.has(memo))
73
+ return;
74
+ const existing = (await transport_1.readPages.call(this, '/v1/jwk', {}, undefined, itemIndex)).find((entry) => String(entry.kid) === kid);
75
+ if (existing !== undefined) {
76
+ if (String(existing.n) !== String(jwk.n)) {
77
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `Another key is registered as ${kid}`, {
78
+ itemIndex,
79
+ description: 'Kinescope holds a different public key under this Signing Key ID, so links signed here would not verify. Give the credential another Signing Key ID, or delete the old key with Signing Key → Delete.',
80
+ });
81
+ }
82
+ if (Date.parse(String((_a = existing.expires_at) !== null && _a !== void 0 ? _a : '')) <= Date.now()) {
83
+ throw new n8n_workflow_1.NodeOperationError(this.getNode(), `The signing key ${kid} has expired in Kinescope`, {
84
+ itemIndex,
85
+ description: 'Delete it with Signing Key → Delete; the next admin link registers the key again. For your own key, Signing Key → Register sets a new expiry.',
86
+ });
87
+ }
88
+ }
89
+ else {
90
+ const expires = new Date();
91
+ expires.setUTCFullYear(expires.getUTCFullYear() + FIRST_USE_VALIDITY_YEARS);
92
+ await transport_1.kinescopeRequest.call(this, 'POST', '/v1/jwk', {
93
+ body: { ...jwk, expires_at: expires.toISOString().replace(/\.\d+Z$/, 'Z') },
94
+ itemIndex,
95
+ retry: false,
96
+ });
97
+ }
98
+ registered.add(memo);
52
99
  }
53
100
  function base64url(value) {
54
101
  return Buffer.from(JSON.stringify(value)).toString('base64url');
@@ -1 +1 @@
1
- {"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../shared/jwt.ts"],"names":[],"mappings":";;AAUA,oCAOC;AAGD,gCAmCC;AAGD,8BAGC;AAOD,0BAQC;AA5ED,6CAA4F;AAE5F,+CAAkD;AAElD,2CAAyC;AAMzC,SAAgB,YAAY,CAAC,GAAW;;IACvC,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,MAAM,KAAK,GAAG,qDAAqD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/E,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IAChC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,MAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,mCAAI,EAAE,CAAC;IAC3C,OAAO,cAAc,KAAK,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACxF,CAAC;AAGM,KAAK,UAAU,UAAU,CAE/B,SAAiB;;IAEjB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,sBAAU,CAAC,CAAC;IAC1D,MAAM,GAAG,GAAG,MAAM,CAAC,MAAA,WAAW,CAAC,iBAAiB,mCAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/D,MAAM,GAAG,GAAG,MAAM,CAAC,MAAA,WAAW,CAAC,YAAY,mCAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAE1D,IAAI,GAAG,KAAK,EAAE,IAAI,GAAG,KAAK,EAAE,EAAE,CAAC;QAC9B,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,mCAAmC,EAAE;YACjF,SAAS;YACT,WAAW,EACV,yIAAyI;SAC1I,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,GAAc,CAAC;IACnB,IAAI,CAAC;QACJ,GAAG,GAAG,IAAA,8BAAgB,EAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IAAC,MAAM,CAAC;QACR,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,wCAAwC,EAAE;YACtF,SAAS;YACT,WAAW,EACV,oJAAoJ;SACrJ,CAAC,CAAC;IACJ,CAAC;IAED,IAAI,GAAG,CAAC,iBAAiB,KAAK,KAAK,EAAE,CAAC;QACrC,MAAM,IAAI,iCAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,oCAAoC,EAAE;YAClF,SAAS;YACT,WAAW,EAAE,4CAA4C;SACzD,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AACrB,CAAC;AAGD,SAAgB,SAAS,CAAC,GAAc,EAAE,GAAW;IACpD,MAAM,GAAG,GAAG,IAAA,6BAAe,EAAC,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3D,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC;AAC1E,CAAC;AAED,SAAS,SAAS,CAAC,KAAc;IAChC,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACjE,CAAC;AAGD,SAAgB,OAAO,CAAC,GAAc,EAAE,GAAW,EAAE,MAAmB;IACvE,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1D,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;IAC/B,MAAM,SAAS,GAAG,IAAA,wBAAU,EAAC,YAAY,CAAC;SACxC,MAAM,CAAC,GAAG,IAAI,IAAI,IAAI,EAAE,CAAC;SACzB,IAAI,CAAC,GAAG,CAAC;SACT,QAAQ,CAAC,WAAW,CAAC,CAAC;IACxB,OAAO,GAAG,IAAI,IAAI,IAAI,IAAI,SAAS,EAAE,CAAC;AACvC,CAAC"}
1
+ {"version":3,"file":"jwt.js","sourceRoot":"","sources":["../../shared/jwt.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "n8n-nodes-kinescope",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Kinescope nodes for n8n: Speak video meeting rooms, participants, calls and transcripts, restream destinations, videos with download of the original file, webhooks, any API call, and a trigger for Speak, video and live stream events",
5
5
  "keywords": [
6
6
  "n8n-community-node-package",