n8n-nodes-formbase 0.1.0 → 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/LICENSE.md CHANGED
@@ -1,4 +1,4 @@
1
- Copyright 2026 Formbase AS
1
+ Copyright 2026 formbase AS
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining a copy of
4
4
  this software and associated documentation files (the "Software"), to deal in
package/README.md CHANGED
@@ -1,14 +1,14 @@
1
1
  # n8n-nodes-formbase
2
2
 
3
- Community node for [n8n](https://n8n.io) that starts workflows when a [Formbase](https://formbase.so) form receives a submission.
3
+ Community node for [n8n](https://n8n.io) that starts workflows when a [formbase](https://formbase.so) form receives a submission.
4
4
 
5
5
  ## Features
6
6
 
7
7
  - Trigger on completed submissions.
8
8
  - Trigger on abandoned submissions when partial submission tracking is enabled.
9
9
  - Load forms dynamically from every workspace available to the credential.
10
- - Register and remove Formbase webhook subscriptions with the n8n workflow lifecycle.
11
- - Connect securely with workspace-scoped Formbase API tokens.
10
+ - Register and remove formbase webhook subscriptions with the n8n workflow lifecycle.
11
+ - Connect through workspace-scoped OAuth 2.1 with PKCE and automatic refresh-token rotation.
12
12
 
13
13
  ## Install
14
14
 
@@ -20,28 +20,31 @@ n8n-nodes-formbase
20
20
 
21
21
  Community nodes must be enabled on self-hosted n8n. Installation in n8n Cloud requires a verified community node.
22
22
 
23
+ OAuth setup requires n8n 2.30 or newer.
24
+
23
25
  ## Configure credentials
24
26
 
25
- 1. In Formbase, open **OAuth and API Keys** in the workspace sidebar.
26
- 2. Create an API token and copy it immediately. Tokens start with `fb_` and are shown once.
27
- 3. In n8n, create a **Formbase API** credential and paste the token.
28
- 4. Keep **API Base URL** set to `https://api.formbase.so`.
29
- 5. Select **Test**. n8n calls `me.get` to verify the token.
27
+ 1. In n8n, create a **formbase OAuth2 API** credential.
28
+ 2. Select **Connect my account**.
29
+ 3. Sign in to formbase, choose workspace, and approve requested API access.
30
+ 4. Select **Test**. n8n calls `me.get` to verify connection.
31
+
32
+ n8n registers its exact callback URL with formbase automatically through OAuth Dynamic Client Registration. Access tokens expire after one hour and refresh automatically. Rotating refresh token remains valid while connection is used at least once every 30 days.
30
33
 
31
- Formbase API tokens expire after 30 days. Rotate the token and update the n8n credential before expiration.
34
+ Self-hosted n8n must use configured HTTPS public URL for OAuth callback. Loopback HTTP is supported for local development.
32
35
 
33
36
  ## Use trigger
34
37
 
35
- 1. Add **Formbase Trigger** to a workflow.
38
+ 1. Add **formbase Trigger** to a workflow.
36
39
  2. Select form and event.
37
40
  3. For a test execution, select **Listen for Test Event**, then submit the selected form.
38
- 4. Activate the workflow. n8n registers its production webhook with Formbase and removes it when the workflow is deactivated or deleted.
41
+ 4. Activate the workflow. n8n registers its production webhook with formbase and removes it when the workflow is deactivated or deleted.
39
42
 
40
43
  n8n webhook URL must be publicly reachable over HTTPS. For reverse-proxy or tunnel deployments, configure n8n's `WEBHOOK_URL` so generated webhook URLs use public origin.
41
44
 
42
45
  ## Output
43
46
 
44
- Each webhook produces one n8n item containing Formbase payload:
47
+ Each webhook produces one n8n item containing formbase payload:
45
48
 
46
49
  ```json
47
50
  {
@@ -75,7 +78,7 @@ Each webhook produces one n8n item containing Formbase payload:
75
78
 
76
79
  `eventType` is `SUBMIT_RESPONSE` for a new completed or abandoned response and `UPDATE_RESPONSE` when an existing response changes. Use `eventId` to deduplicate retries.
77
80
 
78
- Full contracts: [Formbase API methods](https://docs.formbase.so/developers/rest-api) and [webhook reference](https://docs.formbase.so/developers/webhooks-reference).
81
+ Full contracts: [formbase API methods](https://docs.formbase.so/developers/rest-api) and [webhook reference](https://docs.formbase.so/developers/webhooks-reference).
79
82
 
80
83
  ## Develop
81
84
 
@@ -0,0 +1,10 @@
1
+ import type { Icon, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
2
+ export declare class FormbaseOAuth2Api implements ICredentialType {
3
+ name: string;
4
+ extends: string[];
5
+ displayName: string;
6
+ icon: Icon;
7
+ documentationUrl: string;
8
+ properties: INodeProperties[];
9
+ test: ICredentialTestRequest;
10
+ }
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FormbaseOAuth2Api = void 0;
4
+ const constants_1 = require("../nodes/Formbase/constants");
5
+ class FormbaseOAuth2Api {
6
+ constructor() {
7
+ this.name = constants_1.FORMBASE_OAUTH2_CREDENTIAL_NAME;
8
+ this.extends = ['oAuth2Api'];
9
+ this.displayName = 'formbase OAuth2 API';
10
+ this.icon = {
11
+ light: 'file:../nodes/Formbase/formbase-logo.svg',
12
+ dark: 'file:../nodes/Formbase/formbase-logo.dark.svg',
13
+ };
14
+ this.documentationUrl = 'https://github.com/formbaseso/n8n-nodes-formbase#configure-credentials';
15
+ this.properties = [
16
+ {
17
+ displayName: 'Use Dynamic Client Registration',
18
+ name: 'useDynamicClientRegistration',
19
+ type: 'hidden',
20
+ default: true,
21
+ },
22
+ {
23
+ displayName: 'Server URL',
24
+ name: 'serverUrl',
25
+ type: 'hidden',
26
+ default: constants_1.FORMBASE_API_RESOURCE_URL,
27
+ required: true,
28
+ },
29
+ ];
30
+ this.test = {
31
+ request: {
32
+ url: '={{$credentials.serverUrl}}',
33
+ method: 'POST',
34
+ body: {
35
+ method: 'me.get',
36
+ params: {},
37
+ },
38
+ },
39
+ };
40
+ }
41
+ }
42
+ exports.FormbaseOAuth2Api = FormbaseOAuth2Api;
43
+ //# sourceMappingURL=FormbaseOAuth2Api.credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormbaseOAuth2Api.credentials.js","sourceRoot":"","sources":["../../credentials/FormbaseOAuth2Api.credentials.ts"],"names":[],"mappings":";;;AAEA,2DAAwG;AAExG,MAAa,iBAAiB;IAA9B;QACE,SAAI,GAAG,2CAA+B,CAAA;QAEtC,YAAO,GAAG,CAAC,WAAW,CAAC,CAAA;QAGvB,gBAAW,GAAG,qBAAqB,CAAA;QAEnC,SAAI,GAAS;YACX,KAAK,EAAE,0CAA0C;YACjD,IAAI,EAAE,+CAA+C;SACtD,CAAA;QAED,qBAAgB,GAAG,wEAAwE,CAAA;QAE3F,eAAU,GAAsB;YAC9B;gBACE,WAAW,EAAE,iCAAiC;gBAC9C,IAAI,EAAE,8BAA8B;gBACpC,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,IAAI;aACd;YACD;gBACE,WAAW,EAAE,YAAY;gBACzB,IAAI,EAAE,WAAW;gBACjB,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,qCAAyB;gBAClC,QAAQ,EAAE,IAAI;aACf;SACF,CAAA;QAED,SAAI,GAA2B;YAC7B,OAAO,EAAE;gBACP,GAAG,EAAE,6BAA6B;gBAClC,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE;oBACJ,MAAM,EAAE,QAAQ;oBAChB,MAAM,EAAE,EAAE;iBACX;aACF;SACF,CAAA;IACH,CAAC;CAAA;AAzCD,8CAyCC"}
@@ -18,7 +18,7 @@ async function listWorkspaceForms(context, workspace) {
18
18
  if (!result.hasMore)
19
19
  break;
20
20
  if (!result.nextCursor) {
21
- throw new n8n_workflow_1.NodeApiError(context.getNode(), { message: 'Formbase returned an incomplete forms page' });
21
+ throw new n8n_workflow_1.NodeApiError(context.getNode(), { message: 'formbase returned an incomplete forms page' });
22
22
  }
23
23
  cursor = result.nextCursor;
24
24
  } while (cursor);
@@ -30,22 +30,22 @@ function findWebhookSubscription(subscriptions, targetUrl, eventType) {
30
30
  class FormbaseTrigger {
31
31
  constructor() {
32
32
  this.description = {
33
- displayName: 'Formbase Trigger',
33
+ displayName: 'formbase Trigger',
34
34
  name: 'formbaseTrigger',
35
- icon: { light: 'file:formbase.svg', dark: 'file:formbase.dark.svg' },
35
+ icon: { light: 'file:formbase-logo.svg', dark: 'file:formbase-logo.dark.svg' },
36
36
  group: ['trigger'],
37
37
  version: 1,
38
- subtitle: '={{$parameter["event"]}}',
39
- description: 'Starts the workflow when a Formbase form receives a submission',
38
+ subtitle: '={{ $parameter["event"] === "submission_created" ? "On submission created" : "On submission abandoned" }}',
39
+ description: 'Starts the workflow when a formbase form receives a submission',
40
40
  usableAsTool: true,
41
41
  defaults: {
42
- name: 'Formbase Trigger',
42
+ name: 'formbase Trigger',
43
43
  },
44
44
  inputs: [],
45
45
  outputs: [n8n_workflow_1.NodeConnectionTypes.Main],
46
46
  credentials: [
47
47
  {
48
- name: 'formbaseApi',
48
+ name: constants_1.FORMBASE_OAUTH2_CREDENTIAL_NAME,
49
49
  required: true,
50
50
  },
51
51
  ],
@@ -58,12 +58,12 @@ class FormbaseTrigger {
58
58
  },
59
59
  ],
60
60
  triggerPanel: {
61
- header: 'Listening for Formbase submissions',
61
+ header: 'Listening for formbase submissions',
62
62
  executionsHelp: {
63
63
  inactive: 'While building the workflow, click <em>Listen for Test Event</em> and submit the form once. New submissions arrive in real time after the workflow is activated.',
64
64
  active: 'New submissions to the selected form trigger this workflow. The webhook remains registered while the workflow is active.',
65
65
  },
66
- activationHint: 'Activate the workflow to register the webhook with Formbase. Deactivating removes it.',
66
+ activationHint: 'Activate the workflow to register the webhook with formbase. Deactivating removes it.',
67
67
  },
68
68
  properties: [
69
69
  {
@@ -85,10 +85,14 @@ class FormbaseTrigger {
85
85
  {
86
86
  name: 'Submission Abandoned',
87
87
  value: constants_1.FORMBASE_WEBHOOK_EVENTS.submissionAbandoned,
88
+ action: 'On submission abandoned',
89
+ description: 'Runs when a respondent leaves the selected form before submitting it; requires partial submission tracking',
88
90
  },
89
91
  {
90
92
  name: 'Submission Created',
91
93
  value: constants_1.FORMBASE_WEBHOOK_EVENTS.submissionCreated,
94
+ action: 'On submission created',
95
+ description: 'Runs when a respondent submits the selected form',
92
96
  },
93
97
  ],
94
98
  default: 'submission_created',
@@ -1 +1 @@
1
- {"version":3,"file":"FormbaseTrigger.node.js","sourceRoot":"","sources":["../../../nodes/Formbase/FormbaseTrigger.node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FormbaseTrigger.node.js","sourceRoot":"","sources":["../../../nodes/Formbase/FormbaseTrigger.node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ {
2
+ "node": "n8n-nodes-formbase",
3
+ "nodeVersion": "1.0",
4
+ "codexVersion": "1.0",
5
+ "categories": ["Marketing & Content", "Productivity"],
6
+ "resources": {
7
+ "credentialDocumentation": [
8
+ {
9
+ "url": "https://github.com/formbaseso/n8n-nodes-formbase#configure-credentials"
10
+ }
11
+ ],
12
+ "primaryDocumentation": [
13
+ {
14
+ "url": "https://github.com/formbaseso/n8n-nodes-formbase"
15
+ }
16
+ ]
17
+ }
18
+ }
@@ -16,30 +16,30 @@ const ERROR_CODE_TO_HTTP = {
16
16
  };
17
17
  async function formbaseApiRequest(method, params = {}) {
18
18
  var _a, _b, _c, _d, _e, _f;
19
- const credentials = await this.getCredentials('formbaseApi');
20
- const baseUrl = String((_a = credentials.baseUrl) !== null && _a !== void 0 ? _a : constants_1.DEFAULT_FORMBASE_API_URL).replace(/\/+$/, '');
19
+ const credentials = await this.getCredentials(constants_1.FORMBASE_OAUTH2_CREDENTIAL_NAME);
20
+ const resourceUrl = String((_a = credentials.serverUrl) !== null && _a !== void 0 ? _a : constants_1.FORMBASE_API_RESOURCE_URL).replace(/\/+$/, '');
21
21
  const options = {
22
22
  method: 'POST',
23
- url: `${baseUrl}${constants_1.FORMBASE_API_PATH}`,
23
+ url: resourceUrl,
24
24
  body: { method, params },
25
25
  json: true,
26
26
  ignoreHttpStatusErrors: true,
27
27
  returnFullResponse: false,
28
28
  };
29
- const response = (await this.helpers.httpRequestWithAuthentication.call(this, 'formbaseApi', options));
29
+ const response = (await this.helpers.httpRequestWithAuthentication.call(this, constants_1.FORMBASE_OAUTH2_CREDENTIAL_NAME, options));
30
30
  if (!response || typeof response !== 'object') {
31
- throw new n8n_workflow_1.NodeApiError(this.getNode(), { message: 'Invalid response from Formbase API' });
31
+ throw new n8n_workflow_1.NodeApiError(this.getNode(), { message: 'Invalid response from formbase API' });
32
32
  }
33
33
  if (response.ok === false) {
34
34
  const code = (_c = (_b = response.error) === null || _b === void 0 ? void 0 : _b.code) !== null && _c !== void 0 ? _c : 'INTERNAL_ERROR';
35
- const message = (_e = (_d = response.error) === null || _d === void 0 ? void 0 : _d.message) !== null && _e !== void 0 ? _e : 'Formbase API error';
35
+ const message = (_e = (_d = response.error) === null || _d === void 0 ? void 0 : _d.message) !== null && _e !== void 0 ? _e : 'formbase API error';
36
36
  throw new n8n_workflow_1.NodeApiError(this.getNode(), { message, code }, {
37
37
  message: `${code}: ${message}`,
38
38
  httpCode: String((_f = ERROR_CODE_TO_HTTP[code]) !== null && _f !== void 0 ? _f : 500),
39
39
  });
40
40
  }
41
41
  if (response.ok !== true || !('data' in response)) {
42
- throw new n8n_workflow_1.NodeApiError(this.getNode(), { message: 'Invalid response from Formbase API' });
42
+ throw new n8n_workflow_1.NodeApiError(this.getNode(), { message: 'Invalid response from formbase API' });
43
43
  }
44
44
  return response.data;
45
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GenericFunctions.js","sourceRoot":"","sources":["../../../nodes/Formbase/GenericFunctions.ts"],"names":[],"mappings":";;AAoCA,gDAsCC;AApED,+CAA2C;AAE3C,2CAAyE;AAgBzE,MAAM,kBAAkB,GAA2B;IACjD,gBAAgB,EAAE,GAAG;IACrB,YAAY,EAAE,GAAG;IACjB,gBAAgB,EAAE,GAAG;IACrB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,gBAAgB,EAAE,GAAG;IACrB,QAAQ,EAAE,GAAG;IACb,YAAY,EAAE,GAAG;IACjB,cAAc,EAAE,GAAG;CACpB,CAAA;AAEM,KAAK,UAAU,kBAAkB,CAEtC,MAAc,EACd,SAAkC,EAAE;;IAEpC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAA;IAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,MAAA,WAAW,CAAC,OAAO,mCAAI,oCAAwB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAE3F,MAAM,OAAO,GAAwB;QACnC,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,GAAG,OAAO,GAAG,6BAAiB,EAAE;QACrC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;QACxB,IAAI,EAAE,IAAI;QACV,sBAAsB,EAAE,IAAI;QAC5B,kBAAkB,EAAE,KAAK;KAC1B,CAAA;IAGD,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,EAAE,OAAO,CAAC,CAA2B,CAAA;IAEhI,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC9C,MAAM,IAAI,2BAAY,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC,CAAA;IAC3F,CAAC;IAED,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,MAAA,MAAA,QAAQ,CAAC,KAAK,0CAAE,IAAI,mCAAI,gBAAgB,CAAA;QACrD,MAAM,OAAO,GAAG,MAAA,MAAA,QAAQ,CAAC,KAAK,0CAAE,OAAO,mCAAI,oBAAoB,CAAA;QAC/D,MAAM,IAAI,2BAAY,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;YACxD,OAAO,EAAE,GAAG,IAAI,KAAK,OAAO,EAAE;YAC9B,QAAQ,EAAE,MAAM,CAAC,MAAA,kBAAkB,CAAC,IAAI,CAAC,mCAAI,GAAG,CAAC;SAClD,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,2BAAY,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC,CAAA;IAC3F,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC"}
1
+ {"version":3,"file":"GenericFunctions.js","sourceRoot":"","sources":["../../../nodes/Formbase/GenericFunctions.ts"],"names":[],"mappings":";;AAoCA,gDA0CC;AAxED,+CAA2C;AAE3C,2CAAwF;AAgBxF,MAAM,kBAAkB,GAA2B;IACjD,gBAAgB,EAAE,GAAG;IACrB,YAAY,EAAE,GAAG;IACjB,gBAAgB,EAAE,GAAG;IACrB,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,gBAAgB,EAAE,GAAG;IACrB,QAAQ,EAAE,GAAG;IACb,YAAY,EAAE,GAAG;IACjB,cAAc,EAAE,GAAG;CACpB,CAAA;AAEM,KAAK,UAAU,kBAAkB,CAEtC,MAAc,EACd,SAAkC,EAAE;;IAEpC,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,2CAA+B,CAAC,CAAA;IAC9E,MAAM,WAAW,GAAG,MAAM,CAAC,MAAA,WAAW,CAAC,SAAS,mCAAI,qCAAyB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAElG,MAAM,OAAO,GAAwB;QACnC,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,WAAW;QAChB,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;QACxB,IAAI,EAAE,IAAI;QACV,sBAAsB,EAAE,IAAI;QAC5B,kBAAkB,EAAE,KAAK;KAC1B,CAAA;IAGD,MAAM,QAAQ,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,IAAI,CACrE,IAAI,EACJ,2CAA+B,EAC/B,OAAO,CACR,CAA2B,CAAA;IAE5B,IAAI,CAAC,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC9C,MAAM,IAAI,2BAAY,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC,CAAA;IAC3F,CAAC;IAED,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,MAAA,MAAA,QAAQ,CAAC,KAAK,0CAAE,IAAI,mCAAI,gBAAgB,CAAA;QACrD,MAAM,OAAO,GAAG,MAAA,MAAA,QAAQ,CAAC,KAAK,0CAAE,OAAO,mCAAI,oBAAoB,CAAA;QAC/D,MAAM,IAAI,2BAAY,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;YACxD,OAAO,EAAE,GAAG,IAAI,KAAK,OAAO,EAAE;YAC9B,QAAQ,EAAE,MAAM,CAAC,MAAA,kBAAkB,CAAC,IAAI,CAAC,mCAAI,GAAG,CAAC;SAClD,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,QAAQ,CAAC,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,EAAE,CAAC;QAClD,MAAM,IAAI,2BAAY,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,oCAAoC,EAAE,CAAC,CAAA;IAC3F,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAA;AACtB,CAAC"}
@@ -1,5 +1,7 @@
1
1
  export declare const DEFAULT_FORMBASE_API_URL = "https://api.formbase.so";
2
2
  export declare const FORMBASE_API_PATH = "/api/v1";
3
+ export declare const FORMBASE_API_RESOURCE_URL = "https://api.formbase.so/api/v1";
4
+ export declare const FORMBASE_OAUTH2_CREDENTIAL_NAME = "formbaseOAuth2Api";
3
5
  export declare const FORMBASE_WEBHOOK_EVENTS: {
4
6
  readonly submissionCreated: "submission_created";
5
7
  readonly submissionAbandoned: "submission_abandoned";
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FORMBASE_WEBHOOK_EVENTS = exports.FORMBASE_API_PATH = exports.DEFAULT_FORMBASE_API_URL = void 0;
3
+ exports.FORMBASE_WEBHOOK_EVENTS = exports.FORMBASE_OAUTH2_CREDENTIAL_NAME = exports.FORMBASE_API_RESOURCE_URL = exports.FORMBASE_API_PATH = exports.DEFAULT_FORMBASE_API_URL = void 0;
4
4
  exports.DEFAULT_FORMBASE_API_URL = 'https://api.formbase.so';
5
5
  exports.FORMBASE_API_PATH = '/api/v1';
6
+ exports.FORMBASE_API_RESOURCE_URL = `${exports.DEFAULT_FORMBASE_API_URL}${exports.FORMBASE_API_PATH}`;
7
+ exports.FORMBASE_OAUTH2_CREDENTIAL_NAME = 'formbaseOAuth2Api';
6
8
  exports.FORMBASE_WEBHOOK_EVENTS = {
7
9
  submissionCreated: 'submission_created',
8
10
  submissionAbandoned: 'submission_abandoned',
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../nodes/Formbase/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,wBAAwB,GAAG,yBAAyB,CAAA;AAEpD,QAAA,iBAAiB,GAAG,SAAS,CAAA;AAE7B,QAAA,uBAAuB,GAAG;IACrC,iBAAiB,EAAE,oBAAoB;IACvC,mBAAmB,EAAE,sBAAsB;CACnC,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../nodes/Formbase/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,wBAAwB,GAAG,yBAAyB,CAAA;AAEpD,QAAA,iBAAiB,GAAG,SAAS,CAAA;AAE7B,QAAA,yBAAyB,GAAG,GAAG,gCAAwB,GAAG,yBAAiB,EAAE,CAAA;AAE7E,QAAA,+BAA+B,GAAG,mBAAmB,CAAA;AAErD,QAAA,uBAAuB,GAAG;IACrC,iBAAiB,EAAE,oBAAoB;IACvC,mBAAmB,EAAE,sBAAsB;CACnC,CAAA"}
@@ -0,0 +1,6 @@
1
+ <svg viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect width="32" height="32" rx="10" fill="#FFFFFF" fill-opacity="0.04"/>
3
+ <rect x="8" y="8" width="6" height="16" rx="2.5" fill="#F7F7F7"/>
4
+ <rect x="16" y="8" width="8" height="6" rx="2.5" fill="#F7F7F7" fill-opacity="0.8"/>
5
+ <rect x="16" y="16" width="6" height="5" rx="2.5" fill="#F7F7F7" fill-opacity="0.7"/>
6
+ </svg>
@@ -0,0 +1,6 @@
1
+ <svg viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect width="32" height="32" rx="10" fill="#000000" fill-opacity="0.04"/>
3
+ <rect x="8" y="8" width="6" height="16" rx="2.5" fill="#2F2F2F"/>
4
+ <rect x="16" y="8" width="8" height="6" rx="2.5" fill="#2F2F2F" fill-opacity="0.8"/>
5
+ <rect x="16" y="16" width="6" height="5" rx="2.5" fill="#2F2F2F" fill-opacity="0.7"/>
6
+ </svg>
package/dist/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "n8n-nodes-formbase",
3
- "version": "0.1.0",
4
- "description": "n8n community node for Formbase — trigger workflows from form submissions.",
3
+ "version": "0.2.1",
4
+ "description": "n8n community node for formbase — trigger workflows from form submissions.",
5
5
  "keywords": [
6
6
  "n8n-community-node-package",
7
7
  "n8n",
@@ -41,7 +41,7 @@
41
41
  "n8nNodesApiVersion": 1,
42
42
  "strict": true,
43
43
  "credentials": [
44
- "dist/credentials/FormbaseApi.credentials.js"
44
+ "dist/credentials/FormbaseOAuth2Api.credentials.js"
45
45
  ],
46
46
  "nodes": [
47
47
  "dist/nodes/Formbase/FormbaseTrigger.node.js"
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "n8n-nodes-formbase",
3
- "version": "0.1.0",
4
- "description": "n8n community node for Formbase — trigger workflows from form submissions.",
3
+ "version": "0.2.1",
4
+ "description": "n8n community node for formbase — trigger workflows from form submissions.",
5
5
  "keywords": [
6
6
  "n8n-community-node-package",
7
7
  "n8n",
@@ -41,7 +41,7 @@
41
41
  "n8nNodesApiVersion": 1,
42
42
  "strict": true,
43
43
  "credentials": [
44
- "dist/credentials/FormbaseApi.credentials.js"
44
+ "dist/credentials/FormbaseOAuth2Api.credentials.js"
45
45
  ],
46
46
  "nodes": [
47
47
  "dist/nodes/Formbase/FormbaseTrigger.node.js"
@@ -1,10 +0,0 @@
1
- import type { IAuthenticateGeneric, Icon, ICredentialTestRequest, ICredentialType, INodeProperties } from 'n8n-workflow';
2
- export declare class FormbaseApi implements ICredentialType {
3
- name: string;
4
- displayName: string;
5
- icon: Icon;
6
- documentationUrl: string;
7
- properties: INodeProperties[];
8
- authenticate: IAuthenticateGeneric;
9
- test: ICredentialTestRequest;
10
- }
@@ -1,52 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FormbaseApi = void 0;
4
- const constants_1 = require("../nodes/Formbase/constants");
5
- class FormbaseApi {
6
- constructor() {
7
- this.name = 'formbaseApi';
8
- this.displayName = 'Formbase API';
9
- this.icon = { light: 'file:../nodes/Formbase/formbase.svg', dark: 'file:../nodes/Formbase/formbase.dark.svg' };
10
- this.documentationUrl = 'https://docs.formbase.so/developers/api-tokens';
11
- this.properties = [
12
- {
13
- displayName: 'API Key',
14
- name: 'apiKey',
15
- type: 'string',
16
- typeOptions: { password: true },
17
- default: '',
18
- required: true,
19
- description: 'API token from Formbase (OAuth and API Keys). Starts with <code>fb_</code>.',
20
- },
21
- {
22
- displayName: 'API Base URL',
23
- name: 'baseUrl',
24
- type: 'string',
25
- default: constants_1.DEFAULT_FORMBASE_API_URL,
26
- required: true,
27
- description: 'Formbase API origin. Keep the default unless Formbase support provides a different URL.',
28
- },
29
- ];
30
- this.authenticate = {
31
- type: 'generic',
32
- properties: {
33
- headers: {
34
- Authorization: '=Bearer {{$credentials.apiKey}}',
35
- },
36
- },
37
- };
38
- this.test = {
39
- request: {
40
- baseURL: '={{$credentials.baseUrl}}',
41
- url: constants_1.FORMBASE_API_PATH,
42
- method: 'POST',
43
- body: {
44
- method: 'me.get',
45
- params: {},
46
- },
47
- },
48
- };
49
- }
50
- }
51
- exports.FormbaseApi = FormbaseApi;
52
- //# sourceMappingURL=FormbaseApi.credentials.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormbaseApi.credentials.js","sourceRoot":"","sources":["../../credentials/FormbaseApi.credentials.ts"],"names":[],"mappings":";;;AAEA,2DAAyF;AAEzF,MAAa,WAAW;IAAxB;QACE,SAAI,GAAG,aAAa,CAAA;QAEpB,gBAAW,GAAG,cAAc,CAAA;QAE5B,SAAI,GAAS,EAAE,KAAK,EAAE,qCAAqC,EAAE,IAAI,EAAE,0CAA0C,EAAE,CAAA;QAE/G,qBAAgB,GAAG,gDAAgD,CAAA;QAEnE,eAAU,GAAsB;YAC9B;gBACE,WAAW,EAAE,SAAS;gBACtB,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAC/B,OAAO,EAAE,EAAE;gBACX,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,6EAA6E;aAC3F;YACD;gBACE,WAAW,EAAE,cAAc;gBAC3B,IAAI,EAAE,SAAS;gBACf,IAAI,EAAE,QAAQ;gBACd,OAAO,EAAE,oCAAwB;gBACjC,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,yFAAyF;aACvG;SACF,CAAA;QAED,iBAAY,GAAyB;YACnC,IAAI,EAAE,SAAS;YACf,UAAU,EAAE;gBACV,OAAO,EAAE;oBACP,aAAa,EAAE,iCAAiC;iBACjD;aACF;SACF,CAAA;QAED,SAAI,GAA2B;YAC7B,OAAO,EAAE;gBACP,OAAO,EAAE,2BAA2B;gBACpC,GAAG,EAAE,6BAAiB;gBACtB,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE;oBACJ,MAAM,EAAE,QAAQ;oBAChB,MAAM,EAAE,EAAE;iBACX;aACF;SACF,CAAA;IACH,CAAC;CAAA;AAjDD,kCAiDC"}
@@ -1,4 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 60" width="60" height="60">
2
- <circle cx="30" cy="30" r="28" fill="#818CF8"/>
3
- <text x="30" y="40" font-family="Inter, system-ui, sans-serif" font-size="32" font-weight="700" text-anchor="middle" fill="#ffffff">F</text>
4
- </svg>
@@ -1,4 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 60" width="60" height="60">
2
- <circle cx="30" cy="30" r="28" fill="#6366F1"/>
3
- <text x="30" y="40" font-family="Inter, system-ui, sans-serif" font-size="32" font-weight="700" text-anchor="middle" fill="#ffffff">F</text>
4
- </svg>