Commit graph

124 commits

Author SHA1 Message Date
Iván Ovejero 0ca2759d75
refactor: Optimize SVG icons for nodes (#8195)
Running `svgo` to optimize icon size for nodes.
2024-01-02 17:40:08 +01:00
Jon 97e39c39d9
docs: Replace references to set node (no-changelog) (#7973)
## Summary
This replaces the set node references with edit fields.

Ref: https://n8nio.slack.com/archives/C036PA5D42D/p1702040900165709
2023-12-11 10:10:03 +00:00
Iván Ovejero 29a10668d1
fix(Google Sheets Node): Prevent erroring when fetching mapping columns (#7972)
## Summary
https://n8nio.sentry.io/issues/4709551520

Follow-up to: https://github.com/n8n-io/n8n/pull/7957

...

#### How to test the change:
1. ...


## Issues fixed
Include links to Github issue or Community forum post or **Linear
ticket**:
> Important in order to close automatically and provide context to
reviewers

...


## Review / Merge checklist
- [ ] PR title and summary are descriptive. **Remember, the title
automatically goes into the changelog. Use `(no-changelog)` otherwise.**
([conventions](https://github.com/n8n-io/n8n/blob/master/.github/pull_request_title_conventions.md))
- [ ] [Docs updated](https://github.com/n8n-io/n8n-docs) or follow-up
ticket created.
- [ ] Tests included.
> A bug is not considered fixed, unless a test is added to prevent it
from happening again. A feature is not complete without tests.
  >
> *(internal)* You can use Slack commands to trigger [e2e
tests](https://www.notion.so/n8n/How-to-use-Test-Instances-d65f49dfc51f441ea44367fb6f67eb0a?pvs=4#a39f9e5ba64a48b58a71d81c837e8227)
or [deploy test
instance](https://www.notion.so/n8n/How-to-use-Test-Instances-d65f49dfc51f441ea44367fb6f67eb0a?pvs=4#f6a177d32bde4b57ae2da0b8e454bfce)
or [deploy early access version on
Cloud](https://www.notion.so/n8n/Cloudbot-3dbe779836004972b7057bc989526998?pvs=4#fef2d36ab02247e1a0f65a74f6fb534e).
2023-12-08 17:25:42 +01:00
Iván Ovejero 1d46983b24
refactor: Unify severity and level for all application errors for Sentry (no-changelog) (#7956)
## Summary
Unify `severity` and `level` for all backend application errors for
Sentry

Follow-up to:
https://github.com/n8n-io/n8n/pull/7914#issuecomment-1840433542

...

#### How to test the change:
1. ...


## Issues fixed
Include links to Github issue or Community forum post or **Linear
ticket**:
> Important in order to close automatically and provide context to
reviewers

...


## Review / Merge checklist
- [ ] PR title and summary are descriptive. **Remember, the title
automatically goes into the changelog. Use `(no-changelog)` otherwise.**
([conventions](https://github.com/n8n-io/n8n/blob/master/.github/pull_request_title_conventions.md))
- [ ] [Docs updated](https://github.com/n8n-io/n8n-docs) or follow-up
ticket created.
- [ ] Tests included.
> A bug is not considered fixed, unless a test is added to prevent it
from happening again. A feature is not complete without tests.
  >
> *(internal)* You can use Slack commands to trigger [e2e
tests](https://www.notion.so/n8n/How-to-use-Test-Instances-d65f49dfc51f441ea44367fb6f67eb0a?pvs=4#a39f9e5ba64a48b58a71d81c837e8227)
or [deploy test
instance](https://www.notion.so/n8n/How-to-use-Test-Instances-d65f49dfc51f441ea44367fb6f67eb0a?pvs=4#f6a177d32bde4b57ae2da0b8e454bfce)
or [deploy early access version on
Cloud](https://www.notion.so/n8n/Cloudbot-3dbe779836004972b7057bc989526998?pvs=4#fef2d36ab02247e1a0f65a74f6fb534e).
2023-12-07 16:57:02 +01:00
Iván Ovejero 9b877a9427
fix(Google Sheets Node): Prevent erroring on zero sheet search results (#7957)
## Summary
https://n8nio.sentry.io/issues/4695063783

...

#### How to test the change:
1. ...


## Issues fixed
Include links to Github issue or Community forum post or **Linear
ticket**:
> Important in order to close automatically and provide context to
reviewers

...


## Review / Merge checklist
- [ ] PR title and summary are descriptive. **Remember, the title
automatically goes into the changelog. Use `(no-changelog)` otherwise.**
([conventions](https://github.com/n8n-io/n8n/blob/master/.github/pull_request_title_conventions.md))
- [ ] [Docs updated](https://github.com/n8n-io/n8n-docs) or follow-up
ticket created.
- [ ] Tests included.
> A bug is not considered fixed, unless a test is added to prevent it
from happening again. A feature is not complete without tests.
  >
> *(internal)* You can use Slack commands to trigger [e2e
tests](https://www.notion.so/n8n/How-to-use-Test-Instances-d65f49dfc51f441ea44367fb6f67eb0a?pvs=4#a39f9e5ba64a48b58a71d81c837e8227)
or [deploy test
instance](https://www.notion.so/n8n/How-to-use-Test-Instances-d65f49dfc51f441ea44367fb6f67eb0a?pvs=4#f6a177d32bde4b57ae2da0b8e454bfce)
or [deploy early access version on
Cloud](https://www.notion.so/n8n/Cloudbot-3dbe779836004972b7057bc989526998?pvs=4#fef2d36ab02247e1a0f65a74f6fb534e).
2023-12-07 16:12:07 +01:00
Iván Ovejero e77fd5d286
refactor: Switch plain errors in nodes-base to ApplicationError (no-changelog) (#7914)
Ensure all errors in `nodes-base` are `ApplicationError` or children of
it and contain no variables in the message, to continue normalizing all
the backend errors we report to Sentry. Also, skip reporting to Sentry
errors from user input and from external APIs. In future we should
refine `ApplicationError` to more specific errors.

Follow-up to: [#7877](https://github.com/n8n-io/n8n/pull/7877)

- [x] Test workflows:
https://github.com/n8n-io/n8n/actions/runs/7084627970
- [x] e2e: https://github.com/n8n-io/n8n/actions/runs/7084936861

---------

Co-authored-by: Michael Kret <michael.k@radency.com>
2023-12-05 11:17:08 +01:00
Michael Kret ade3acf800
fix(Google Sheets Node): Missing version fo RMC (no-changelog) (#7886)
Github issue / Community forum post (link here to close automatically):
2023-11-30 17:24:43 +02:00
Jon 5207a2fe52
fix(Google Sheets Node): Fix issue with paired items not being set correctly (#7862)
https://community.n8n.io/t/error-unknown-top-level-item-key-paireditems-item-0/33536/

Co-authored-by: Michael Kret <michael.k@radency.com>
2023-11-29 14:12:50 +00:00
Michael Kret d5488725a8
fix(Google Sheets Node): Read operation execute for each item (#7800)
Github issue / Community forum post (link here to close automatically):
2023-11-28 11:02:11 +02:00
Iván Ovejero 5d4a52d3b7
fix(Google Sheets Node): Check for null before destructuring (#7729)
https://n8nio.sentry.io/issues/4613453684
2023-11-16 16:50:06 +01:00
Jon b1f678856b
docs(Google Sheets Node): Change Get Many to Get Row(s) (#7677)
Github issue / Community forum post (link here to close automatically):
2023-11-15 10:05:36 +00:00
Michael Kret 88efb99587
fix(Google Sheets Node): Append exceeding grid limits (#7684)
Github issue / Community forum post (link here to close automatically):
https://community.n8n.io/t/error-appending-data-with-google-sheets/28691
2023-11-15 11:33:47 +02:00
Michael Kret 18623c7376
feat(Microsoft Excel 365 Node): Alias update (no-changelog) (#7659)
Github issue / Community forum post (link here to close automatically):
2023-11-09 16:56:59 +02:00
Iván Ovejero 52f655f3d2
refactor(Google Sheets Node): Stop reporting to Sentry sheet not found error (no-changelog) (#7617)
https://n8nio.sentry.io/issues/4264383378
2023-11-06 11:36:22 +01:00
Iván Ovejero 62c096710f
refactor: Run lintfix (no-changelog) (#7537)
- Fix autofixable violations
- Remove unused directives
- Allow for PascalCased variables - needed for dynamically imported or
assigned classes, decorators, routers, etc.
2023-10-27 14:15:02 +02:00
Iván Ovejero d885daa6a1
refactor(Google Sheets Node): Prevent reporting to Sentry failure to find spreadsheet (no-changelog) (#7518)
To silence this very frequently reported error:
https://n8nio.sentry.io/issues/3823103947/?project=4503924908883968&query=&referrer=issue-stream&statsPeriod=90d&stream_index=0
2023-10-26 11:33:11 +02:00
Michael Kret ab6a9bbac2
fix(Google Sheets Node): Append or update runs forever when without column headers (#7463)
Github issue / Community forum post (link here to close automatically):

---------

Co-authored-by: Marcus <marcus@n8n.io>
2023-10-19 14:54:13 +03:00
Michael Kret d8531a53b9
fix(Google Sheets Node): Tweaks (#7357)
Github issue / Community forum post (link here to close automatically):
2023-10-17 18:41:30 +03:00
Michael Kret e2c3c7aceb
fix(core): Missing pairing info (#7326)
Github issue / Community forum post (link here to close automatically):
2023-10-10 18:36:20 +03:00
कारतोफ्फेलस्क्रिप्ट™ 732b15a1fa
fix(Google Sheets Node): Fix "Maximum call stack size exceeded" error on too many rows (#7384)
Fixes:

1. https://community.n8n.io/t/google-sheets-error-maximum-call-stack-size-exceeded/31006
2. https://community.n8n.io/t/error-maximum-call-stack-size-exceeded-in-google-sheet-read-rows/20307
2023-10-09 16:58:16 +02:00
Giulio Andreini 09a7cf0980
docs(Google Sheets Node): Operations naming update (no-changelog) (#7211)
Github issue / Community forum post (link here to close automatically):
2023-09-20 15:20:56 +02:00
कारतोफ्फेलस्क्रिप्ट™ 6aa7b93473
refactor(core): Deprecate prepareOutputData (no-changelog) (#7091) 2023-09-05 12:59:02 +02:00
Marcus 00268a019a
fix(Google Sheets Node): Fix short sheet name interpreted as range (#6989)
Github issue / Community forum post (link here to close automatically):
https://github.com/n8n-io/n8n/issues/6203
2023-08-22 18:05:54 +02:00
Marcus 052dd7cc9d
fix(Google Sheets Trigger Node): Support sheet names with non-latin characters (#6970)
Github issue / Community forum post (link here to close automatically):
https://community.n8n.io/t/how-to-get-new-rows-in-google-sheets/25810
2023-08-18 14:38:41 +02:00
Iván Ovejero f50fc8443e
refactor: Reduce usage of IExecuteSingleFunctions (no-changelog) (#6944) 2023-08-16 15:52:41 +02:00
Iván Ovejero 24ce141815
refactor: Clear unused ESLint directives from nodes-base (no-changelog) (#6812)
* refactor: Clear unused ESLint directives from nodes-base (no-changelog)

* removed unused disable directives

---------

Co-authored-by: Marcus <marcus@n8n.io>
2023-08-01 15:32:33 +02:00
कारतोफ्फेलस्क्रिप्ट™ e57e85edf7
refactor: Delete unnecessary interface re-exports from core, and delete unused code in nodes-base (no-changelog) (#6631) 2023-07-12 11:15:38 +02:00
Michael Kret 56721468df
fix(Google Drive Node): Fix regex in file RLC (#6607) 2023-07-05 23:15:13 +03:00
Michael Kret d9ed0b31b5
fix(Google Drive Node): URL parsing (#6527) 2023-06-23 17:12:54 +03:00
Michael Kret 806d134602
fix(Google Sheets Node): Incorrect read of 0 and false (#6525) 2023-06-23 14:24:31 +03:00
Chris Wu 1111c915f2
refactor(core): Replace lodash's "soft-deprecated" individual packages with lodash to resolve CVE (no-changelog) (#6450)
Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
2023-06-16 16:26:35 +02:00
Michael Kret 32fb419011
fix(Google Sheets Node): Return empty response if no rows updated (#6407) 2023-06-14 18:12:20 +03:00
Michael Kret 05c4229cd7
refactor(core): Google service account remove duplicated functions (no-changelog) (#6368) 2023-06-06 19:19:24 +03:00
Milorad FIlipović 04cfa548af
feat(editor): Implement Resource Mapper component (#6207)
*  scaffolding
*  finished scaffolding
*  renamed types
*  updated subtitle
*  renamed functions file, UI updates
*  query parameters fixes, ui updates, refactoring
*  fixes for credentials test, setup for error parsing
*  rlc for schema and table, error handling tweaks
*  delete operation, new options
*  columns loader
*  linter fixes
*  where clauses setup
*  logic for processing where clauses
*  select operation
*  refactoring
*  data mode for insert and update, wip
*  data mapping, insert update, skip on conflict option
*  select columns with spaces fix
*  update operation update, wip
*  finished update operation
*  upsert operation
*  ui fixes
* Copy updates.
* Copy updates.
*  option to convert empty strings to nulls, schema checks
*  UI requested updates
*  ssh setup WIP
*  fixes, ssh WIP
*  ssh fixes, credentials
*  credentials testing update
*  uncaught error fix
*  clean up
*  address in use fix
*  improved error message
*  tests setup
*  unit tests wip
*  config files clean up
*  utils unit tests
*  refactoring
*  setup for testing operations, tests for deleteTable operation
*  executeQuery and insert operations tests
*  select, update, upsert operations tests
*  runQueries tests setup
*  hint to query
* Copy updates.
*  ui fixes
*  clean up
*  error message update
*  ui update
* Minor tweaks to query params decription.
* feat(Google Sheets Node): Implement Resource mapper in Google Sheets node (#5752)
*  Added initial resource mapping support in google sheets node
*  Wired mapping API endpoint with node-specific logic for fetching mapping fields
*  Implementing mapping fields logic for google sheets
*  Updating Google Sheets execute methods to support resource mapper fields
* 🚧 Added initial version of `ResourceLocator` component
* 👌 Added `update` mode to resource mapper modes
* 👌 Addressing PR feedback
* 👌 Removing leftover const reference
* 👕 Fixing lint errors
*  singlton for conections
*  credentials test fix, clean up
* feat(Postgres Node): Add resource mapper to new version of Postgres node (#5814)
*  scaffolding
*  finished scaffolding
*  renamed types
*  updated subtitle
*  renamed functions file, UI updates
*  query parameters fixes, ui updates, refactoring
*  fixes for credentials test, setup for error parsing
*  rlc for schema and table, error handling tweaks
*  delete operation, new options
*  columns loader
*  linter fixes
*  where clauses setup
*  logic for processing where clauses
*  select operation
*  refactoring
*  data mode for insert and update, wip
*  data mapping, insert update, skip on conflict option
*  select columns with spaces fix
*  update operation update, wip
*  finished update operation
*  upsert operation
*  ui fixes
* Copy updates.
* Copy updates.
*  option to convert empty strings to nulls, schema checks
*  UI requested updates
*  ssh setup WIP
*  fixes, ssh WIP
*  ssh fixes, credentials
*  credentials testing update
*  uncaught error fix
*  clean up
*  address in use fix
*  improved error message
*  tests setup
*  unit tests wip
*  config files clean up
*  utils unit tests
*  refactoring
*  setup for testing operations, tests for deleteTable operation
*  executeQuery and insert operations tests
*  select, update, upsert operations tests
*  runQueries tests setup
*  hint to query
* Copy updates.
*  ui fixes
*  clean up
*  error message update
*  ui update
* Minor tweaks to query params decription.
*  Updated Postgres node to use resource mapper component
*  Implemented postgres <-> resource mapper type mapping
*  Updated Postgres node execution to use resource mapper fields in v3
* 🔥 Removing unused import
---------
Co-authored-by: Michael Kret <michael.k@radency.com>
Co-authored-by: Giulio Andreini <g.andreini@gmail.com>

* feat(core): Resource editor componend P0 (#5970)
*  Added inital value of mapping mode dropdown
*  Finished mapping mode selector
*  Finished implementing mapping mode selector
*  Implemented 'Columns to match on' dropdown
*  Implemented `loadOptionsDependOn` support in resource mapper
*  Implemented initial version of mapping fields
*  Implementing dependant fields watcher in new component setup
*  Generating correct resource mapper field types. Added `supportAutoMap` to node specification and UI. Not showing fields with `display=false`. Pre-selecting matching columns if it's the only one
*  Handling matching columns correctly in UI
*  Saving and loading resourceMapper values in component
*  Implemented proper data saving and loading
*  ResourceMapper component refactor, fixing value save/load
*  Refactoring MatchingColumnSelect component. Updating Sheets node to use single key match and Postgres to use multi key
*  Updated Google Sheets node to work with the new UI
*  Updating Postgres Node to work with new UI
*  Additional loading indicator that shown if there is no mapping mode selector
*  Removing hard-coded values, fixing matching columns ordering, refactoring
*  Updating field names in nodes
*  Fixing minor UI issues
*  Implemented matching fields filter logic
*  Moving loading label outside of fields list
*  Added initial unit tests for resource mapper
*  Finished default rendering test
*  Test refactoring
*  Finished unit tests
* 🔨 Updating the way i18n is used in resource mapper components
* ✔️ Fixing value to match on logic for postgres node
*  Hiding mapping fields when auto-map mode is selected
*  Syncing selected mapping mode between components
*  Fixing dateTime input rendering and adding update check to Postgres node
*  Properly handling database connections. Sending null for empty string values.
* 💄 Updated wording in the error message for non-existing rows
*  Fixing issues with selected matching values
* ✔️ Updating unit tests after matching logic update
*  Updating matching columns when new fields are loaded
*  Defaulting to null for empty parameter values
*  Allowing zero as valid value for number imputs
*  Updated list of types that use datepicker as widger
*  Using text inputs for time types
*  Initial mapping field rework
*  Added new component for mapping fields, moved bit of logic from root component to matching selector, fixing some lint errors
*  Added tooltip for columns that cannot be deleted
*  Saving deleted values in parameter value
*  Implemented control to add/remove mapping fields
*  Syncing field list with add field dropdown when changing dependent values
*  Not showing removed fields in matching columns selector. Updating wording in matching columns selector description
*  Implementing disabled states for add/remove all fields options
*  Saving removed columns separately, updating copy
*  Implemented resource mapper values validation
*  Updated validation logic and error input styling
*  Validating resource mapper fields when new nodes are added
*  Using node field words in validation, refactoring resource mapper component
*  Implemented schema syncing and add/remove all fields
*  Implemented custom parameter actions
*  Implemented loading indicator in parameter options
* 🔨 Removing unnecessary constants and vue props
*  Handling default values properly
*  Fixing validation logic
* 👕 Fixing lint errors
*  Fixing type issues
*  Not showing fields by default if `addAllFields` is set to `false`
*  Implemented field type validation in resource mapper
*  Updated casing in copy, removed all/remove all option from bottom menu
*  Added auto mapping mode notice
*  Added support for more types in validation
*  Added support for enumerated values
*  Fixing imports after merging
*  Not showing removed fields in matching columns selector. Refactoring validation logic.
* 👕 Fixing imports
* ✔️ Updating unit tests
*  Added resource mapper schema tests
*  Removing `match` from resource mapper field definition, fixing matching columns loading
*  Fixed schema merging
*  update operation return data fix
*  review
* 🐛 Added missing import
* 💄 Updating parameter actions icon based on the ui review
* 💄 Updating word capitalisation in tooltips
* 💄 Added empty state to mapping fields list
* 💄 Removing asterisk from fields, updating tooltips for matching fields
*  Preventing matching fields from being removed by 'Remove All option'
*  Not showing hidden fields in the `Add field` dropdown
*  Added support for custom matching columns labels
*  query optimization
*  fix
*  Optimizing Postgres node enumeration logic
*  Added empty state for matching columns
*  Only fully loading fields if there is no schema fetched
*  Hiding mapping fields if there is no matching columns available in the schema
* ✔️ Fixing minor issues
*  Implemented runtime type validation
* 🔨 Refactoring validation logic
*  Implemented required check, added more custom messages
*  Skipping boolean type in required check
* Type check improvements
*  Only reloading fields if dependent values actually change
*  Adding item index to validation error title
*  Updating Postgres fetching logic, using resource mapper mode to determine if a field can be deleted
*  Resetting field values when adding them via the addAll option
*  Using minor version (2.2) for new Postgres node
*  Implemented proper date validation and type casting
* 👕 Consolidating typing
*  Added unit tests for type validations
* 👌 Addressing front-end review comments
*  More refactoring to address review changes
*  Updating leftover props
*  Added fallback for ISO dates with invalid timezones
* Added timestamp to datetime test cases
*  Reseting matching columns if operation changes
*  Not forcing auto-increment fields to be filled in in Postgres node. Handling null values
* 💄 Added a custom message for invalid dates
*  Better handling of JSON values
*  Updating codemirror readonly stauts based on component property, handling objects in json validation
* Deleting leftover console.log
*  Better time validation
*  Fixing build error after merging
* 👕 Fixing lint error
*  Updating node configuration values
*  Handling postgres arrays better
*  Handling SQL array syntax
*  Updating time validation rules to include timezone
*  Sending expressions that resolve to `null` or `undefined` by the resource mapper to delete cell content in Google Sheets
*  Allowing removed fields to be selected for match
*  Updated the query for fetching unique columns and primary keys
*  Optimizing the unique query
*  Setting timezone to all parsed dates
*  Addressing PR review feedback
*  Configuring Sheets node for production, minor vue component update
* New cases added to the TypeValidation test.
*  Tweaking validation rules for arrays/objects and updating test cases
---------
Co-authored-by: Michael Kret <michael.k@radency.com>
Co-authored-by: Giulio Andreini <g.andreini@gmail.com>
2023-05-31 11:56:09 +02:00
Michael Kret cb497fbbec
feat(core): Add notice to alert users a new version is available 2023-05-02 11:45:04 +03:00
Milorad FIlipović b17d5f9aa0
feat(editor): Add support for loadOptionsDependsOn to RLC (#6101)
* feat(editor): Add support for `loadOptionsDependsOn` to the Resource Locator component
* 🔥 Removing leftover log
*  Added e2e tests for ResourceLocator component
2023-04-28 12:14:31 +02:00
Michael Kret 0e93fe064e
refactor(core): Forbid raw enums (no-changelog) 2023-04-21 14:23:15 +03:00
Michael Kret ba5b4eb42f
fix(Google Sheets Trigger Node): Return actual error message 2023-04-17 16:23:57 +03:00
Michael Kret 082c61701c
fix(Google Sheets Node): Unit tests (no-changelog) 2023-03-27 19:23:18 +03:00
Michael Kret 0625e2e6bc
fix(Google Sheets Node): Fix insertOrUpdate cell update with object 2023-03-27 17:56:36 +03:00
कारतोफ्फेलस्क्रिप्ट™ 7a4e9ef5fa
refactor: Remove n8n-core dependency in nodes-base (no-changelog) (#5649) 2023-03-09 18:13:15 +01:00
Michael Kret bb4db58819
fix(core): Remove linting exceptions in nodes-base, @typescript-eslint/no-unsafe-argument (no-changelog) 2023-02-28 05:39:43 +02:00
Alex Grozav f0695827f5
feat: Migrate packages from lodash to lodash-es (no-changelog) (#5538) 2023-02-23 16:16:05 +01:00
Giulio Andreini b16d9d0f8c
docs(Google Sheets Node): Description updates for fields (no-changelog) (#5277) 2023-02-08 12:33:57 +00:00
Iván Ovejero b03e358a12
refactor: Integrate consistent-type-imports in nodes-base (no-changelog) (#5267)
* 👕 Enable `consistent-type-imports` for nodes-base

* 👕 Apply to nodes-base

*  Undo unrelated changes

* 🚚 Move to `.eslintrc.js` in nodes-base

*  Revert "Enable `consistent-type-imports` for nodes-base"

This reverts commit 529ad72b05.

* 👕 Fix severity
2023-01-27 12:22:44 +01:00
Michael Kret e667df783c
fix(core): Revert rule @typescript-eslint/prefer-nullish-coalescing 2023-01-19 14:37:19 +02:00
Michael Kret e839a81cc5
feat: (Google Sheets Trigger Node): Trigger for Google Sheets 2023-01-17 15:21:16 +02:00
Michael Kret 6608e69457
refactor(core): Remove linting exceptions in nodes-base (no-changelog) (#4944) 2023-01-13 18:11:56 +01:00
Michael Kret 77031a2950
fix(Google Sheets Node): Fix for auto-range detection 2023-01-06 00:25:28 +02:00
Michael Kret b5e70d45bf
fix(Google Sheets Node): Append or Update fails for numeric values 2023-01-05 17:31:47 +02:00