Commit graph

3921 commits

Author SHA1 Message Date
Iván Ovejero 6d6e2488c6
refactor(core): Generalize binary data manager interface (no-changelog) (#7164)
Depends on: #7092 | Story:
[PAY-768](https://linear.app/n8n/issue/PAY-768)

This PR: 
- Generalizes the `IBinaryDataManager` interface.
- Adjusts `Filesystem.ts` to satisfy the interface.
- Sets up an S3 client stub to be filled in in the next PR.
- Turns `BinaryDataManager` into an injectable service.
- Adjusts the config schema and adds new validators.

Note that the PR looks large but all the main changes are in
`packages/core/src/binaryData`.

Out of scope:
- `BinaryDataManager` (now `BinaryDataService`) and `Filesystem.ts` (now
`fs.client.ts`) were slightly refactored for maintainability, but fully
overhauling them is **not** the focus of this PR, which is meant to
clear the way for the S3 implementation. Future improvements for these
two should include setting up a backwards-compatible dir structure that
makes it easier to locate binary data files to delete, removing
duplication, simplifying cloning methods, using integers for binary data
size instead of `prettyBytes()`, writing tests for existing binary data
logic, etc.

---------

Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
2023-09-22 17:22:12 +02:00
Jon c0df5cdfd4
fix(APITemplate.io Node): Fix action description for create pdf (no-changelog) (#7226)
Github issue / Community forum post (link here to close automatically):
https://github.com/n8n-io/n8n/issues/7224
2023-09-22 07:27:00 +01:00
Michael Kret 2af967cf88
fix(Airtable Node): Attachments field type fix (#7227)
Github issue / Community forum post (link here to close automatically):

https://community.n8n.io/t/possible-airtable-bug-when-creating-attachment-record/29288
2023-09-21 15:00:41 +03:00
कारतोफ्फेलस्क्रिप्ट™ 8bb22292d5 Merge tag 'n8n@1.8.0' 2023-09-20 16:20:34 +02:00
Iván Ovejero cd08c8e4c6
refactor(core): Implement soft-deletions for executions (#7092)
Based on #7065 | Story: https://linear.app/n8n/issue/PAY-771

n8n on filesystem mode marks binary data to delete on manual execution
deletion, on unsaved execution completion, and on every execution
pruning cycle. We later prune binary data in a separate cycle via these
marker files, based on the configured TTL. In the context of introducing
an S3 client to manage binary data, the filesystem mode's mark-and-prune
setup is too tightly coupled to the general binary data management
client interface.

This PR...
- Ensures the deletion of an execution causes the deletion of any binary
data associated to it. This does away with the need for binary data TTL
and simplifies the filesystem mode's mark-and-prune setup.
- Refactors all execution deletions (including pruning) to cause soft
deletions, hard-deletes soft-deleted executions based on the existing
pruning config, and adjusts execution endpoints to filter out
soft-deleted executions. This reduces DB load, and keeps binary data
around long enough for users to access it when building workflows with
unsaved executions.
- Moves all execution pruning work from an execution lifecycle hook to
`execution.repository.ts`. This keeps related logic in a single place.
- Removes all marking logic from the binary data manager. This
simplifies the interface that the S3 client will meet.
- Adds basic sanity-check tests to pruning logic and execution deletion.

Out of scope:

- Improving existing pruning logic.
- Improving existing execution repository logic.
- Adjusting dir structure for filesystem mode.

---------

Co-authored-by: कारतोफ्फेलस्क्रिप्ट™ <aditya@netroy.in>
2023-09-20 15:21:42 +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
github-actions[bot] ecd5d93c19
🚀 Release 1.8.0 (#7219)
# [1.8.0](https://github.com/n8n-io/n8n/compare/n8n@1.7.0...n8n@1.8.0)
(2023-09-20)


### Bug Fixes

* **core:** Make parsing of content-type and content-disposition headers
more flexible ([#7217](https://github.com/n8n-io/n8n/issues/7217))
([d41546b](d41546b899)),
closes [#7149](https://github.com/n8n-io/n8n/issues/7149)
* **core:** Resolve domains to IPv4 first
([#7206](https://github.com/n8n-io/n8n/issues/7206))
([e9ce531](e9ce531210))
* **editor:** Add ssh key type selection to source control settings when
regenerating key ([#7172](https://github.com/n8n-io/n8n/issues/7172))
([54bf66d](54bf66d335))
* **editor:** No need to add click emitting click events, VUE delegates
the handler to the root element of the component
([#7182](https://github.com/n8n-io/n8n/issues/7182))
([3c055e4](3c055e4d8d))
* **editor:** Prevent duplicate creation of credential for OAuth2
([#7163](https://github.com/n8n-io/n8n/issues/7163))
([07a6417](07a6417f0f))
* **editor:** Testing flaky resource mapper feature in e2e tests
([#7165](https://github.com/n8n-io/n8n/issues/7165))
([aaf87c3](aaf87c3edd))
* **HTML Node:** Add pairedItem support for 'Convert to HTML Table'
operation ([#7196](https://github.com/n8n-io/n8n/issues/7196))
([6bc477b](6bc477b50e))
* **HTTP Request Node:** Decrease default timeout to 5min
([#7177](https://github.com/n8n-io/n8n/issues/7177))
([321780d](321780d4a2))
* **seven Node:** Rename sms77 to seven, fix credentials test
([#7180](https://github.com/n8n-io/n8n/issues/7180))
([cf776b8](cf776b8f17))
* **X (Formerly Twitter) Node:** Rename Twitter to X (keep Twitter
alias) ([#7179](https://github.com/n8n-io/n8n/issues/7179))
([d317e09](d317e09c59))


### Features

* **core:** Add command to trigger license refresh on workers
([#7184](https://github.com/n8n-io/n8n/issues/7184))
([9f797b9](9f797b96d8))
* **core:** Add rsa option to ssh key generation
([#7154](https://github.com/n8n-io/n8n/issues/7154))
([fdac2c8](fdac2c8572))
* **Linear Node:** Add support for OAuth2
([#7201](https://github.com/n8n-io/n8n/issues/7201))
([12a3168](12a3168367))
* **Microsoft Outlook Node:** Node overhaul
([#4449](https://github.com/n8n-io/n8n/issues/4449))
([556a613](556a6132ba))
* **Set Node:** Overhaul
([#6348](https://github.com/n8n-io/n8n/issues/6348))
([3a47455](3a474552b2))

Co-authored-by: krynble <krynble@users.noreply.github.com>
2023-09-20 15:10:20 +02:00
Marcus 6bc477b50e
fix(HTML Node): Add pairedItem support for 'Convert to HTML Table' operation (#7196)
Github issue / Community forum post (link here to close automatically):

Co-authored-by: Michael Kret <michael.k@radency.com>
2023-09-20 13:56:53 +02:00
Elias Meire 321780d4a2
fix(HTTP Request Node): Decrease default timeout to 5min (#7177)
Github issue / Community forum post (link here to close automatically):

fixes https://github.com/n8n-io/n8n/issues/7081
2023-09-20 12:38:34 +02:00
Jon 12a3168367
feat(Linear Node): Add support for OAuth2 (#7201) 2023-09-20 10:19:12 +01:00
Michael Kret 3a474552b2
feat(Set Node): Overhaul (#6348)
Github issue / Community forum post (link here to close automatically):
https://github.com/n8n-io/n8n/pull/6348

---------

Co-authored-by: Giulio Andreini <g.andreini@gmail.com>
Co-authored-by: Marcus <marcus@n8n.io>
2023-09-19 13:16:35 +03:00
Elias Meire cf776b8f17
fix(seven Node): Rename sms77 to seven, fix credentials test (#7180)
Github issue / Community forum post (link here to close automatically):
2023-09-19 10:26:53 +02:00
Jon 8b3aa0d68f
fix(Spotify Node): Fix typos in descriptions (no-changelog) (#7194)
Github issue / Community forum post (link here to close automatically):
https://github.com/n8n-io/n8n/issues/7191
2023-09-18 15:05:15 +01:00
Elias Meire d317e09c59
fix(X (Formerly Twitter) Node): Rename Twitter to X (keep Twitter alias) (#7179)
Github issue / Community forum post (link here to close automatically):
2023-09-15 15:04:16 +02:00
Michael Kret 556a6132ba
feat(Microsoft Outlook Node): Node overhaul (#4449)
[N8N-4995](https://linear.app/n8n/issue/N8N-4995)

---------

Co-authored-by: Giulio Andreini <g.andreini@gmail.com>
2023-09-15 12:52:18 +03:00
Milorad FIlipović aaf87c3edd
fix(editor): Testing flaky resource mapper feature in e2e tests (#7165) 2023-09-14 10:54:25 +02:00
github-actions[bot] a6e027b3ff
🚀 Release 1.7.0 (#7162)
# [1.7.0](https://github.com/n8n-io/n8n/compare/n8n@1.6.0...n8n@1.7.0)
(2023-09-13)


### Bug Fixes

* **Code Node:** Disable WASM to address CVE-2023-37903
([#7122](https://github.com/n8n-io/n8n/issues/7122))
([36a8e91](36a8e911e6))
* **Code Node:** Upgrade vm2 to address CVE-2023-37466
([#7123](https://github.com/n8n-io/n8n/issues/7123))
([0a35025](0a35025e5e))
* **core:** Disable Node.js custom inspection to address CVE-2023-37903
([#7125](https://github.com/n8n-io/n8n/issues/7125))
([a223734](a223734a4a))
* **editor** Account for nanoid workflow ids for subworkflow execute
policy ([#7094](https://github.com/n8n-io/n8n/issues/7094))
([67092c0](67092c0a1b))
* **editor:** Tweak hover area of workflow / cred cards
([#7108](https://github.com/n8n-io/n8n/issues/7108))
([217de21](217de21605))
* **editor:** Unbind workflow endpoint events in case of workspace reset
([#7129](https://github.com/n8n-io/n8n/issues/7129))
([c9b7948](c9b79485cf))
* **editor:** Update git repo url validation regex
([#7151](https://github.com/n8n-io/n8n/issues/7151))
([e51f173](e51f173608))
* **Google Cloud Firestore Node:** Fix empty string interpreted as
number ([#7136](https://github.com/n8n-io/n8n/issues/7136))
([915cfa0](915cfa0f6a))
* **HubSpot Node:** Fix issue with contact lists not working
([#5582](https://github.com/n8n-io/n8n/issues/5582))
([6e5a4f6](6e5a4f6a58))
* **Postgres Node:** Fix automatic column mapping
([#7121](https://github.com/n8n-io/n8n/issues/7121))
([92af131](92af1314fe))
* **Zoho CRM Node:** Fix issue with Sales Order not updating
([#6959](https://github.com/n8n-io/n8n/issues/6959))
([fd800b6](fd800b674b))


### Features

* **core:** Add an option to enable WAL mode for SQLite
([#7118](https://github.com/n8n-io/n8n/issues/7118))
([1d1a022](1d1a022def))
* **core:** Add commands to workers to respond with current state
([#7029](https://github.com/n8n-io/n8n/issues/7029))
([7b49cf2](7b49cf2a2c))
* **Salesforce Node:** Add fax field to lead option
([#7030](https://github.com/n8n-io/n8n/issues/7030))
([01f875a](01f875a94d))

Co-authored-by: netroy <netroy@users.noreply.github.com>
2023-09-13 14:55:52 +02:00
Jon 6e5a4f6a58
fix(HubSpot Node): Fix issue with contact lists not working (#5582) 2023-09-12 17:04:39 +01:00
Quang-Linh LE 915cfa0f6a
fix(Google Cloud Firestore Node): Fix empty string interpreted as number (#7136) 2023-09-12 10:03:33 +01:00
Jon fd800b674b
fix(Zoho CRM Node): Fix issue with Sales Order not updating (#6959) 2023-09-11 17:15:52 +01:00
Jon 5c6cccd4fa
docs: Add concatenate alias to Split in Batches (#7133)
Github issue / Community forum post (link here to close automatically):
2023-09-08 12:49:16 +01:00
कारतोफ्फेलस्क्रिप्ट™ 0a35025e5e
fix(Code Node): Upgrade vm2 to address CVE-2023-37466 (#7123)
[GH Advisory](https://github.com/advisories/GHSA-cchq-frgv-rjh5)

Actual fix
[here](26168e6dfe).
2023-09-07 14:18:15 +02:00
Jon f07d97fa6e
docs: Add email alias to Outlook and GMail (#7127) 2023-09-07 10:42:34 +01:00
MC Naveen 01f875a94d
feat(Salesforce Node): Add fax field to lead option (#7030)
Closes:
https://community.n8n.io/t/there-is-no-fax-field-in-the-saleforce-lead-cretion/29829
2023-09-07 08:07:37 +01:00
Deborah 9af626a1b3
docs: Docs links for TheHive and TheHive5 (#7124)
Github issue / Community forum post (link here to close automatically):
2023-09-07 07:49:55 +01:00
कारतोफ्फेलस्क्रिप्ट™ 92af1314fe
fix(Postgres Node): Fix automatic column mapping (#7121)
NODE-757
2023-09-06 16:32:50 +02:00
कारतोफ्फेलस्क्रिप्ट™ 36a8e911e6
fix(Code Node): Disable WASM to address CVE-2023-37903 (#7122)
[GH Advisory](https://github.com/advisories/GHSA-g644-9gfx-q4q4)
2023-09-06 16:11:39 +02:00
github-actions[bot] 955bd327ff
🚀 Release 1.6.0 (#7120)
# [1.6.0](https://github.com/n8n-io/n8n/compare/n8n@1.5.1...n8n@1.6.0)
(2023-09-06)


### Bug Fixes

* **core:** Add support for in-transit encryption (TLS) on Redis
connections ([#7047](https://github.com/n8n-io/n8n/issues/7047))
([a910757](a910757cc5))
* **core:** Disallow orphan executions
([#7069](https://github.com/n8n-io/n8n/issues/7069))
([8a28e98](8a28e98ec8))
* **core:** Split event bus controller into community and ee
([#7107](https://github.com/n8n-io/n8n/issues/7107))
([011ee2e](011ee2e04b))
* **editor:** Standardize save text
([#7093](https://github.com/n8n-io/n8n/issues/7093))
([58b3492](58b3492b0d))
* Ensure all new executions are saved
([#7061](https://github.com/n8n-io/n8n/issues/7061))
([b8e06d2](b8e06d245f))
* Load remote resources even if expressions in non requried parameters
resolve ([#6987](https://github.com/n8n-io/n8n/issues/6987))
([8a8d4e8](8a8d4e8bb3))
* **Postgres Node:** Connection pool of the database object has been
destroyed ([#7074](https://github.com/n8n-io/n8n/issues/7074))
([9dd5f0e](9dd5f0e579))
* **Postgres Node:** Tunnel doesn't always close
([#7087](https://github.com/n8n-io/n8n/issues/7087))
([58e55ba](58e55ba669))


### Features

* **core:** Add list query middleware to credentials
([#7041](https://github.com/n8n-io/n8n/issues/7041))
([fd78021](fd78021b68))
* **core:** Add support for floating licenses
([#7090](https://github.com/n8n-io/n8n/issues/7090))
([e26553f](e26553f198))
* **core:** Migration for soft deletions for executions
([#7088](https://github.com/n8n-io/n8n/issues/7088))
([413e0bc](413e0bccb4))
* **HTTP Request Node:** Determine binary file name from
content-disposition headers
([#7032](https://github.com/n8n-io/n8n/issues/7032))
([273d091](273d0913fe))
* **TheHive Node:** Overhaul
([#6457](https://github.com/n8n-io/n8n/issues/6457))
([73e782e](73e782e2cf))

Co-authored-by: netroy <netroy@users.noreply.github.com>
2023-09-06 13:35:31 +02:00
कारतोफ्फेलस्क्रिप्ट™ 273d0913fe
feat(HTTP Request Node): Determine binary file name from content-disposition headers (#7032)
Fixes: 

https://community.n8n.io/t/http-request-node-read-filename-from-content-disposition-header-when-downloading-files/13453

https://community.n8n.io/t/read-filename-from-content-disposition-header-when-downloading-files/22192
2023-09-06 12:38:37 +02:00
कारतोफ्फेलस्क्रिप्ट™ 689a77cc87
refactor(Spreadsheet File Node): Reduce memory usage when loading CSV files (#7095)
Co-authored-by: Michael Kret <michael.k@radency.com>
2023-09-06 11:58:00 +02:00
कारतोफ्फेलस्क्रिप्ट™ 6aa7b93473
refactor(core): Deprecate prepareOutputData (no-changelog) (#7091) 2023-09-05 12:59:02 +02:00
Michael Kret 73e782e2cf
feat(TheHive Node): Overhaul (#6457) 2023-09-04 18:15:52 +03:00
Michael Kret 58e55ba669
fix(Postgres Node): Tunnel doesn't always close (#7087) 2023-09-04 13:26:02 +03:00
Deborah 400949daa4
docs(Strapi Node): Update Strapi.node.json with correct credentials URL (#7060)
Github issue / Community forum post (link here to close automatically):
2023-09-04 10:47:24 +01:00
Michael Kret 9dd5f0e579
fix(Postgres Node): Connection pool of the database object has been destroyed (#7074)
Github issue / Community forum post (link here to close automatically):
2023-09-01 22:19:10 +03:00
कारतोफ्फेलस्क्रिप्ट™ 2432dcc661
fix(core): Prevent bots from scanning the application (no-changelog) (#7066)
N8N-6878
2023-09-01 13:54:35 +02:00
Mutasem Aldmour 8a8d4e8bb3
fix: Load remote resources even if expressions in non requried parameters resolve (#6987)
Github issue / Community forum post (link here to close automatically):
2023-08-31 16:40:20 +02:00
Iván Ovejero 8cd4db0ab7
refactor(core): Simplify marking logic in binary data manager (no-changelog) (#7046)
- For a saved execution, we write to disk binary data and metadata.
These two are only ever deleted via `POST /executions/delete`. No marker
file, so untouched by pruning.
- For an unsaved execution, we write to disk binary data, binary data
metadata, and a marker file at `/meta`. We later delete all three during
pruning.
- The third flow is legacy. Currently, if the execution is unsaved, we
actually store it in the DB while running the workflow and immediately
after the workflow is finished during the `onWorkflowPostExecute()` hook
we delete that execution, so the second flow applies. But formerly, we
did not store unsaved executions in the DB ("ephemeral executions") and
so we needed to write a marker file at `/persistMeta` so that, if the
ephemeral execution crashed after the step where binary data was stored,
we had a way to later delete its associated dangling binary data via a
second pruning cycle, and if the ephemeral execution succeeded, then we
immediately cleaned up the marker file at `/persistMeta` during the
`onWorkflowPostExecute()` hook.

This creation and cleanup at `/persistMeta` is still happening, but this
third flow no longer has a purpose, as we now store unsaved executions
in the DB and delete them immediately after. Hence the third flow can be
removed.
2023-08-31 16:02:20 +02:00
github-actions[bot] 24cb23adfc
🚀 Release 1.5.1 (#7059)
## [1.5.1](https://github.com/n8n-io/n8n/compare/n8n@1.5.0...n8n@1.5.1)
(2023-08-31)


### Features

* **Strapi Node:** Add token credentials
([#7048](https://github.com/n8n-io/n8n/issues/7048))
([c01bca5](c01bca562b))

Co-authored-by: netroy <netroy@users.noreply.github.com>
2023-08-31 14:47:59 +02:00
कारतोफ्फेलस्क्रिप्ट™ 9cfe5e3c66 Merge tag 'n8n@1.5.0' 2023-08-31 14:01:47 +02:00
github-actions[bot] 0ca2c780ed
🚀 Release 1.5.0 (#7056)
# [1.5.0](https://github.com/n8n-io/n8n/compare/n8n@1.4.0...n8n@1.5.0)
(2023-08-31)


### Bug Fixes

* **Agile CRM Node:** Fix issue with company address not working
([#6997](https://github.com/n8n-io/n8n/issues/6997))
([2f81652](2f81652400))
* **Code Node:** Switch over to vm2 fork
([#7018](https://github.com/n8n-io/n8n/issues/7018))
([dfe0fa6](dfe0fa65f8))
* **core:** Invalid NODES_INCLUDE should not crash the app
([#7038](https://github.com/n8n-io/n8n/issues/7038))
([04e3178](04e3178901)),
closes [#6683](https://github.com/n8n-io/n8n/issues/6683)
* **core:** Setup websocket keep-live messages
([#6866](https://github.com/n8n-io/n8n/issues/6866))
([8bdb07d](8bdb07d33d)),
closes [#6757](https://github.com/n8n-io/n8n/issues/6757)
* **core:** Throw `NodeSSLError` only for nodes that allow ignoring SSL
issues ([#6928](https://github.com/n8n-io/n8n/issues/6928))
([a01c3fb](a01c3fbc19))
* **Date & Time Node:** Dont parse date if it's not set (null or
undefined) ([#7050](https://github.com/n8n-io/n8n/issues/7050))
([d72f79f](d72f79ffb3))
* **editor:** Fix sending of Ask AI tracking events
([#7002](https://github.com/n8n-io/n8n/issues/7002))
([fb05afa](fb05afa165))
* **Microsoft Excel 365 Node:** Support for more extensions in workbook
rlc ([#7020](https://github.com/n8n-io/n8n/issues/7020))
([d6e1cf2](d6e1cf232f))
* **MongoDB Node:** Stringify response ObjectIDs
([#6990](https://github.com/n8n-io/n8n/issues/6990))
([9ca990b](9ca990b993))
* **MongoDB Node:** Upgrade mongodb package to address CVE-2021-32050
([#7054](https://github.com/n8n-io/n8n/issues/7054))
([d3f6356](d3f635657c))
* **Postgres Node:** Empty return data fix for Postgres and MySQL
([#7016](https://github.com/n8n-io/n8n/issues/7016))
([176ccd6](176ccd62bc))
* **Webhook Node:** Fix URL params for webhooks
([#6986](https://github.com/n8n-io/n8n/issues/6986))
([596b569](596b5695cd))


### Features

* **core:** External Secrets storage for credentials
([#6477](https://github.com/n8n-io/n8n/issues/6477))
([ed927d3](ed927d34b2))
* **core:** Add MFA ([#4767](https://github.com/n8n-io/n8n/issues/4767))
([2b7ba6f](2b7ba6fdf1))
* **core:** Add filtering, selection and pagination to users
([#6994](https://github.com/n8n-io/n8n/issues/6994))
([b716241](b716241b42))
* **editor:** Debug executions in the editor
([#6834](https://github.com/n8n-io/n8n/issues/6834))
([c833078](c833078c87))
* **RSS Read Node:** Add support for self signed certificates
([#7039](https://github.com/n8n-io/n8n/issues/7039))
([3b9f0fe](3b9f0fed7a))

Co-authored-by: netroy <netroy@users.noreply.github.com>
2023-08-31 12:57:20 +02:00
Elias Meire c01bca562b
feat(Strapi Node): Add token credentials (#7048)
Co-authored-by: Michael Kret <michael.k@radency.com>
2023-08-31 12:46:28 +02:00
Elias Meire d72f79ffb3
fix(Date & Time Node): Dont parse date if it's not set (null or undefined) (#7050)
Github issue / Community forum post (link here to close automatically):
https://community.n8n.io/t/date-time-node-transforming-null-to-19700101/29339

null/undefined input was converted to 01/01/1970 instead of being passed
through as-is
2023-08-31 12:33:26 +02:00
कारतोफ्फेलस्क्रिप्ट™ d3f635657c
fix(MongoDB Node): Upgrade mongodb package to address CVE-2021-32050 (#7054)
[GH Advisory](https://github.com/advisories/GHSA-vxvm-qww3-2fh7)
2023-08-31 12:29:43 +02:00
Jon 3b9f0fed7a
feat(RSS Read Node): Add support for self signed certificates (#7039) 2023-08-30 16:11:47 +01:00
कारतोफ्फेलस्क्रिप्ट™ dfe0fa65f8
fix(Code Node): Switch over to vm2 fork (#7018)
[Fork is here](https://github.com/n8n-io/vm2). Currently there are no
modifications in it.
2023-08-30 11:17:04 +02:00
Marcus 9ca990b993
fix(MongoDB Node): Stringify response ObjectIDs (#6990)
Github issue / Community forum post (link here to close automatically):
2023-08-29 17:44:37 +02:00
Michael Kret 176ccd62bc
fix(Postgres Node): Empty return data fix for Postgres and MySQL (#7016) 2023-08-25 18:38:09 +03:00
कारतोफ्फेलस्क्रिप्ट™ f02f6b659a
refactor(Item Lists Node): Delete duplicate code for sorting via code (no-changelog) (#7019) 2023-08-25 15:46:37 +02:00
Michael Kret d6e1cf232f
fix(Microsoft Excel 365 Node): Support for more extensions in workbook rlc (#7020)
Github issue / Community forum post (link here to close automatically):
2023-08-25 16:37:34 +03:00