@limetech/n8n-nodes-lime 2.3.1-dev.1 → 2.5.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.
Files changed (51) hide show
  1. package/.github/workflows/lint.yml +1 -1
  2. package/.github/workflows/release.yml +16 -2
  3. package/.github/workflows/test-and-build.yml +0 -15
  4. package/CHANGELOG.md +35 -2
  5. package/nodes/errorHandling.ts +60 -0
  6. package/nodes/lime-crm/LimeCrmNode.node.ts +8 -0
  7. package/nodes/lime-crm/LimeCrmTrigger.node.ts +19 -5
  8. package/nodes/lime-crm/methods/getLimetypeProperties.ts +3 -1
  9. package/nodes/lime-crm/methods/getLimetypes.ts +2 -1
  10. package/nodes/lime-crm/methods/index.ts +5 -0
  11. package/nodes/lime-crm/methods/resourceMapping.ts +141 -0
  12. package/nodes/lime-crm/models/limetype.ts +18 -0
  13. package/nodes/lime-crm/resources/admin/index.ts +9 -4
  14. package/nodes/lime-crm/resources/admin/operations/getManyUsers.operation.ts +10 -2
  15. package/nodes/lime-crm/resources/admin/operations/getSingleUser.operation.ts +14 -15
  16. package/nodes/lime-crm/resources/data/index.ts +15 -6
  17. package/nodes/lime-crm/resources/data/operations/createSingleObject.operation.ts +25 -71
  18. package/nodes/lime-crm/resources/data/operations/deleteSingleObject.operation.ts +7 -2
  19. package/nodes/lime-crm/resources/data/operations/getManyObjects.operation.ts +6 -2
  20. package/nodes/lime-crm/resources/data/operations/getSingleFile.operation.ts +15 -3
  21. package/nodes/lime-crm/resources/data/operations/getSingleObject.operation.ts +15 -6
  22. package/nodes/lime-crm/resources/data/operations/updateSingleObject.operation.ts +41 -57
  23. package/nodes/lime-crm/resources/metadata/index.ts +7 -3
  24. package/nodes/lime-crm/resources/metadata/operations/getAllLimetypes.operation.ts +6 -2
  25. package/nodes/lime-crm/resources/metadata/operations/getSingleFileMetadata.operation.ts +18 -15
  26. package/nodes/lime-crm/resources/metadata/operations/getSingleLimetype.operation.ts +8 -3
  27. package/nodes/lime-crm/transport/commons.ts +34 -20
  28. package/nodes/lime-crm/transport/files.ts +72 -47
  29. package/nodes/lime-crm/transport/limeQuery.ts +2 -2
  30. package/nodes/lime-crm/transport/limeobjects.ts +22 -10
  31. package/nodes/lime-crm/transport/limetypes.ts +37 -16
  32. package/nodes/lime-crm/transport/users.ts +74 -38
  33. package/nodes/lime-crm/transport/webhooks.ts +5 -4
  34. package/nodes/lime-crm/utils/files.ts +27 -10
  35. package/nodes/lime-crm/utils/index.ts +1 -1
  36. package/nodes/response.ts +41 -3
  37. package/package.json +4 -2
  38. package/tests/nodes/lime-crm/methods.spec.ts +91 -0
  39. package/tests/nodes/lime-crm/utils.spec.ts +60 -25
  40. package/nodes/lime-crm/utils/propertyAdapters.ts +0 -75
  41. package/restore_script/README +0 -42
  42. package/restore_script/api_key_upload.txt +0 -0
  43. package/restore_script/cli.py +0 -73
  44. package/restore_script/download.py +0 -73
  45. package/restore_script/main.py +0 -19
  46. package/restore_script/poetry.lock +0 -162
  47. package/restore_script/pyproject.toml +0 -15
  48. package/restore_script/transfer.py +0 -41
  49. package/restore_script/upload.py +0 -66
  50. package/restore_script/utils.py +0 -42
  51. /package/{restore_script/api_key_download.txt → Dockerfile} +0 -0
@@ -1,162 +0,0 @@
1
- # This file is automatically @generated by Poetry and should not be changed by hand.
2
-
3
- [[package]]
4
- name = "certifi"
5
- version = "2025.10.5"
6
- description = "Python package for providing Mozilla's CA Bundle."
7
- category = "main"
8
- optional = false
9
- python-versions = ">=3.7"
10
- files = [
11
- {file = "certifi-2025.10.5-py3-none-any.whl", hash = "sha256:0f212c2744a9bb6de0c56639a6f68afe01ecd92d91f14ae897c4fe7bbeeef0de"},
12
- {file = "certifi-2025.10.5.tar.gz", hash = "sha256:47c09d31ccf2acf0be3f701ea53595ee7e0b8fa08801c6624be771df09ae7b43"},
13
- ]
14
-
15
- [[package]]
16
- name = "charset-normalizer"
17
- version = "3.4.3"
18
- description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet."
19
- category = "main"
20
- optional = false
21
- python-versions = ">=3.7"
22
- files = [
23
- {file = "charset_normalizer-3.4.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:fb7f67a1bfa6e40b438170ebdc8158b78dc465a5a67b6dde178a46987b244a72"},
24
- {file = "charset_normalizer-3.4.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cc9370a2da1ac13f0153780040f465839e6cccb4a1e44810124b4e22483c93fe"},
25
- {file = "charset_normalizer-3.4.3-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:07a0eae9e2787b586e129fdcbe1af6997f8d0e5abaa0bc98c0e20e124d67e601"},
26
- {file = "charset_normalizer-3.4.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:74d77e25adda8581ffc1c720f1c81ca082921329452eba58b16233ab1842141c"},
27
- {file = "charset_normalizer-3.4.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d0e909868420b7049dafd3a31d45125b31143eec59235311fc4c57ea26a4acd2"},
28
- {file = "charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c6f162aabe9a91a309510d74eeb6507fab5fff92337a15acbe77753d88d9dcf0"},
29
- {file = "charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:4ca4c094de7771a98d7fbd67d9e5dbf1eb73efa4f744a730437d8a3a5cf994f0"},
30
- {file = "charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:02425242e96bcf29a49711b0ca9f37e451da7c70562bc10e8ed992a5a7a25cc0"},
31
- {file = "charset_normalizer-3.4.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:78deba4d8f9590fe4dae384aeff04082510a709957e968753ff3c48399f6f92a"},
32
- {file = "charset_normalizer-3.4.3-cp310-cp310-win32.whl", hash = "sha256:d79c198e27580c8e958906f803e63cddb77653731be08851c7df0b1a14a8fc0f"},
33
- {file = "charset_normalizer-3.4.3-cp310-cp310-win_amd64.whl", hash = "sha256:c6e490913a46fa054e03699c70019ab869e990270597018cef1d8562132c2669"},
34
- {file = "charset_normalizer-3.4.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b256ee2e749283ef3ddcff51a675ff43798d92d746d1a6e4631bf8c707d22d0b"},
35
- {file = "charset_normalizer-3.4.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:13faeacfe61784e2559e690fc53fa4c5ae97c6fcedb8eb6fb8d0a15b475d2c64"},
36
- {file = "charset_normalizer-3.4.3-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:00237675befef519d9af72169d8604a067d92755e84fe76492fef5441db05b91"},
37
- {file = "charset_normalizer-3.4.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:585f3b2a80fbd26b048a0be90c5aae8f06605d3c92615911c3a2b03a8a3b796f"},
38
- {file = "charset_normalizer-3.4.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0e78314bdc32fa80696f72fa16dc61168fda4d6a0c014e0380f9d02f0e5d8a07"},
39
- {file = "charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:96b2b3d1a83ad55310de8c7b4a2d04d9277d5591f40761274856635acc5fcb30"},
40
- {file = "charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:939578d9d8fd4299220161fdd76e86c6a251987476f5243e8864a7844476ba14"},
41
- {file = "charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:fd10de089bcdcd1be95a2f73dbe6254798ec1bda9f450d5828c96f93e2536b9c"},
42
- {file = "charset_normalizer-3.4.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1e8ac75d72fa3775e0b7cb7e4629cec13b7514d928d15ef8ea06bca03ef01cae"},
43
- {file = "charset_normalizer-3.4.3-cp311-cp311-win32.whl", hash = "sha256:6cf8fd4c04756b6b60146d98cd8a77d0cdae0e1ca20329da2ac85eed779b6849"},
44
- {file = "charset_normalizer-3.4.3-cp311-cp311-win_amd64.whl", hash = "sha256:31a9a6f775f9bcd865d88ee350f0ffb0e25936a7f930ca98995c05abf1faf21c"},
45
- {file = "charset_normalizer-3.4.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e28e334d3ff134e88989d90ba04b47d84382a828c061d0d1027b1b12a62b39b1"},
46
- {file = "charset_normalizer-3.4.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0cacf8f7297b0c4fcb74227692ca46b4a5852f8f4f24b3c766dd94a1075c4884"},
47
- {file = "charset_normalizer-3.4.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c6fd51128a41297f5409deab284fecbe5305ebd7e5a1f959bee1c054622b7018"},
48
- {file = "charset_normalizer-3.4.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3cfb2aad70f2c6debfbcb717f23b7eb55febc0bb23dcffc0f076009da10c6392"},
49
- {file = "charset_normalizer-3.4.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1606f4a55c0fd363d754049cdf400175ee96c992b1f8018b993941f221221c5f"},
50
- {file = "charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:027b776c26d38b7f15b26a5da1044f376455fb3766df8fc38563b4efbc515154"},
51
- {file = "charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:42e5088973e56e31e4fa58eb6bd709e42fc03799c11c42929592889a2e54c491"},
52
- {file = "charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:cc34f233c9e71701040d772aa7490318673aa7164a0efe3172b2981218c26d93"},
53
- {file = "charset_normalizer-3.4.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:320e8e66157cc4e247d9ddca8e21f427efc7a04bbd0ac8a9faf56583fa543f9f"},
54
- {file = "charset_normalizer-3.4.3-cp312-cp312-win32.whl", hash = "sha256:fb6fecfd65564f208cbf0fba07f107fb661bcd1a7c389edbced3f7a493f70e37"},
55
- {file = "charset_normalizer-3.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:86df271bf921c2ee3818f0522e9a5b8092ca2ad8b065ece5d7d9d0e9f4849bcc"},
56
- {file = "charset_normalizer-3.4.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:14c2a87c65b351109f6abfc424cab3927b3bdece6f706e4d12faaf3d52ee5efe"},
57
- {file = "charset_normalizer-3.4.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41d1fc408ff5fdfb910200ec0e74abc40387bccb3252f3f27c0676731df2b2c8"},
58
- {file = "charset_normalizer-3.4.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1bb60174149316da1c35fa5233681f7c0f9f514509b8e399ab70fea5f17e45c9"},
59
- {file = "charset_normalizer-3.4.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:30d006f98569de3459c2fc1f2acde170b7b2bd265dc1943e87e1a4efe1b67c31"},
60
- {file = "charset_normalizer-3.4.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:416175faf02e4b0810f1f38bcb54682878a4af94059a1cd63b8747244420801f"},
61
- {file = "charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6aab0f181c486f973bc7262a97f5aca3ee7e1437011ef0c2ec04b5a11d16c927"},
62
- {file = "charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:fdabf8315679312cfa71302f9bd509ded4f2f263fb5b765cf1433b39106c3cc9"},
63
- {file = "charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:bd28b817ea8c70215401f657edef3a8aa83c29d447fb0b622c35403780ba11d5"},
64
- {file = "charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:18343b2d246dc6761a249ba1fb13f9ee9a2bcd95decc767319506056ea4ad4dc"},
65
- {file = "charset_normalizer-3.4.3-cp313-cp313-win32.whl", hash = "sha256:6fb70de56f1859a3f71261cbe41005f56a7842cc348d3aeb26237560bfa5e0ce"},
66
- {file = "charset_normalizer-3.4.3-cp313-cp313-win_amd64.whl", hash = "sha256:cf1ebb7d78e1ad8ec2a8c4732c7be2e736f6e5123a4146c5b89c9d1f585f8cef"},
67
- {file = "charset_normalizer-3.4.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3cd35b7e8aedeb9e34c41385fda4f73ba609e561faedfae0a9e75e44ac558a15"},
68
- {file = "charset_normalizer-3.4.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b89bc04de1d83006373429975f8ef9e7932534b8cc9ca582e4db7d20d91816db"},
69
- {file = "charset_normalizer-3.4.3-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2001a39612b241dae17b4687898843f254f8748b796a2e16f1051a17078d991d"},
70
- {file = "charset_normalizer-3.4.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8dcfc373f888e4fb39a7bc57e93e3b845e7f462dacc008d9749568b1c4ece096"},
71
- {file = "charset_normalizer-3.4.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:18b97b8404387b96cdbd30ad660f6407799126d26a39ca65729162fd810a99aa"},
72
- {file = "charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ccf600859c183d70eb47e05a44cd80a4ce77394d1ac0f79dbd2dd90a69a3a049"},
73
- {file = "charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:53cd68b185d98dde4ad8990e56a58dea83a4162161b1ea9272e5c9182ce415e0"},
74
- {file = "charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:30a96e1e1f865f78b030d65241c1ee850cdf422d869e9028e2fc1d5e4db73b92"},
75
- {file = "charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d716a916938e03231e86e43782ca7878fb602a125a91e7acb8b5112e2e96ac16"},
76
- {file = "charset_normalizer-3.4.3-cp314-cp314-win32.whl", hash = "sha256:c6dbd0ccdda3a2ba7c2ecd9d77b37f3b5831687d8dc1b6ca5f56a4880cc7b7ce"},
77
- {file = "charset_normalizer-3.4.3-cp314-cp314-win_amd64.whl", hash = "sha256:73dc19b562516fc9bcf6e5d6e596df0b4eb98d87e4f79f3ae71840e6ed21361c"},
78
- {file = "charset_normalizer-3.4.3-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:0f2be7e0cf7754b9a30eb01f4295cc3d4358a479843b31f328afd210e2c7598c"},
79
- {file = "charset_normalizer-3.4.3-cp38-cp38-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c60e092517a73c632ec38e290eba714e9627abe9d301c8c8a12ec32c314a2a4b"},
80
- {file = "charset_normalizer-3.4.3-cp38-cp38-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:252098c8c7a873e17dd696ed98bbe91dbacd571da4b87df3736768efa7a792e4"},
81
- {file = "charset_normalizer-3.4.3-cp38-cp38-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3653fad4fe3ed447a596ae8638b437f827234f01a8cd801842e43f3d0a6b281b"},
82
- {file = "charset_normalizer-3.4.3-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8999f965f922ae054125286faf9f11bc6932184b93011d138925a1773830bbe9"},
83
- {file = "charset_normalizer-3.4.3-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d95bfb53c211b57198bb91c46dd5a2d8018b3af446583aab40074bf7988401cb"},
84
- {file = "charset_normalizer-3.4.3-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:5b413b0b1bfd94dbf4023ad6945889f374cd24e3f62de58d6bb102c4d9ae534a"},
85
- {file = "charset_normalizer-3.4.3-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:b5e3b2d152e74e100a9e9573837aba24aab611d39428ded46f4e4022ea7d1942"},
86
- {file = "charset_normalizer-3.4.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:a2d08ac246bb48479170408d6c19f6385fa743e7157d716e144cad849b2dd94b"},
87
- {file = "charset_normalizer-3.4.3-cp38-cp38-win32.whl", hash = "sha256:ec557499516fc90fd374bf2e32349a2887a876fbf162c160e3c01b6849eaf557"},
88
- {file = "charset_normalizer-3.4.3-cp38-cp38-win_amd64.whl", hash = "sha256:5d8d01eac18c423815ed4f4a2ec3b439d654e55ee4ad610e153cf02faf67ea40"},
89
- {file = "charset_normalizer-3.4.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:70bfc5f2c318afece2f5838ea5e4c3febada0be750fcf4775641052bbba14d05"},
90
- {file = "charset_normalizer-3.4.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:23b6b24d74478dc833444cbd927c338349d6ae852ba53a0d02a2de1fce45b96e"},
91
- {file = "charset_normalizer-3.4.3-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:34a7f768e3f985abdb42841e20e17b330ad3aaf4bb7e7aeeb73db2e70f077b99"},
92
- {file = "charset_normalizer-3.4.3-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:fb731e5deb0c7ef82d698b0f4c5bb724633ee2a489401594c5c88b02e6cb15f7"},
93
- {file = "charset_normalizer-3.4.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:257f26fed7d7ff59921b78244f3cd93ed2af1800ff048c33f624c87475819dd7"},
94
- {file = "charset_normalizer-3.4.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1ef99f0456d3d46a50945c98de1774da86f8e992ab5c77865ea8b8195341fc19"},
95
- {file = "charset_normalizer-3.4.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:2c322db9c8c89009a990ef07c3bcc9f011a3269bc06782f916cd3d9eed7c9312"},
96
- {file = "charset_normalizer-3.4.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:511729f456829ef86ac41ca78c63a5cb55240ed23b4b737faca0eb1abb1c41bc"},
97
- {file = "charset_normalizer-3.4.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:88ab34806dea0671532d3f82d82b85e8fc23d7b2dd12fa837978dad9bb392a34"},
98
- {file = "charset_normalizer-3.4.3-cp39-cp39-win32.whl", hash = "sha256:16a8770207946ac75703458e2c743631c79c59c5890c80011d536248f8eaa432"},
99
- {file = "charset_normalizer-3.4.3-cp39-cp39-win_amd64.whl", hash = "sha256:d22dbedd33326a4a5190dd4fe9e9e693ef12160c77382d9e87919bce54f3d4ca"},
100
- {file = "charset_normalizer-3.4.3-py3-none-any.whl", hash = "sha256:ce571ab16d890d23b5c278547ba694193a45011ff86a9162a71307ed9f86759a"},
101
- {file = "charset_normalizer-3.4.3.tar.gz", hash = "sha256:6fce4b8500244f6fcb71465d4a4930d132ba9ab8e71a7859e6a5d59851068d14"},
102
- ]
103
-
104
- [[package]]
105
- name = "idna"
106
- version = "3.11"
107
- description = "Internationalized Domain Names in Applications (IDNA)"
108
- category = "main"
109
- optional = false
110
- python-versions = ">=3.8"
111
- files = [
112
- {file = "idna-3.11-py3-none-any.whl", hash = "sha256:771a87f49d9defaf64091e6e6fe9c18d4833f140bd19464795bc32d966ca37ea"},
113
- {file = "idna-3.11.tar.gz", hash = "sha256:795dafcc9c04ed0c1fb032c2aa73654d8e8c5023a7df64a53f39190ada629902"},
114
- ]
115
-
116
- [package.extras]
117
- all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"]
118
-
119
- [[package]]
120
- name = "requests"
121
- version = "2.32.5"
122
- description = "Python HTTP for Humans."
123
- category = "main"
124
- optional = false
125
- python-versions = ">=3.9"
126
- files = [
127
- {file = "requests-2.32.5-py3-none-any.whl", hash = "sha256:2462f94637a34fd532264295e186976db0f5d453d1cdd31473c85a6a161affb6"},
128
- {file = "requests-2.32.5.tar.gz", hash = "sha256:dbba0bac56e100853db0ea71b82b4dfd5fe2bf6d3754a8893c3af500cec7d7cf"},
129
- ]
130
-
131
- [package.dependencies]
132
- certifi = ">=2017.4.17"
133
- charset_normalizer = ">=2,<4"
134
- idna = ">=2.5,<4"
135
- urllib3 = ">=1.21.1,<3"
136
-
137
- [package.extras]
138
- socks = ["PySocks (>=1.5.6,!=1.5.7)"]
139
- use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"]
140
-
141
- [[package]]
142
- name = "urllib3"
143
- version = "2.5.0"
144
- description = "HTTP library with thread-safe connection pooling, file post, and more."
145
- category = "main"
146
- optional = false
147
- python-versions = ">=3.9"
148
- files = [
149
- {file = "urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc"},
150
- {file = "urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760"},
151
- ]
152
-
153
- [package.extras]
154
- brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"]
155
- h2 = ["h2 (>=4,<5)"]
156
- socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"]
157
- zstd = ["zstandard (>=0.18.0)"]
158
-
159
- [metadata]
160
- lock-version = "2.0"
161
- python-versions = "^3.11"
162
- content-hash = "f40c18dabbaa3889f633dd67739f0501e4752091d81200dbc7f42d2cdb09545c"
@@ -1,15 +0,0 @@
1
- [tool.poetry]
2
- name = "n8n-scripts"
3
- version = "0.1.0"
4
- description = ""
5
- authors = ["jakub-piatkowski <jakub.piatkowski@lime.tech>"]
6
- readme = "README.md"
7
- packages = [{include = "n8n_scripts"}]
8
-
9
- [tool.poetry.dependencies]
10
- python = "^3.11"
11
- requests = "^2.32.5"
12
-
13
- [build-system]
14
- requires = ["poetry-core"]
15
- build-backend = "poetry.core.masonry.api"
@@ -1,41 +0,0 @@
1
- import requests
2
-
3
- from download import fetch_workflows, create_workflows_endpoint
4
- from upload import clean_workflow, post_workflow
5
- from utils import get_api_key, create_headers
6
-
7
-
8
- def main():
9
- print("n8n Workflow Transfer")
10
- download_instance_url = (input("DOWNLOAD FROM - Enter n8n instance URL (e.g., https://n8n.example.com): ")
11
- .strip().rstrip("/"))
12
- api_key_download = input("Enter your n8n API key: ").strip() or get_api_key("api_key_download.txt")
13
- active = input("Do you want to transfer only active workflows? (y/n, default n): ").strip().lower() == 'y'
14
-
15
- upload_instance_url = (input("UPLOAD TO - Enter n8n instance URL (e.g., https://n8n.example.com): ")
16
- .strip().rstrip("/"))
17
- api_key_upload = input("Enter your n8n API key: ").strip() or get_api_key("api_key_upload.txt")
18
-
19
- download_endpoint = create_workflows_endpoint(instance_url=download_instance_url, active=active, pinned_data=False)
20
- upload_endpoint = f"{upload_instance_url}/api/v1/workflows"
21
-
22
- print("Starting workflow transfer...")
23
- for workflow in fetch_workflows(url=download_endpoint, api_key=api_key_download):
24
- clean_workflow(workflow)
25
- try:
26
- post_workflow(
27
- url=upload_endpoint,
28
- headers=create_headers(api_key_upload),
29
- body=workflow
30
- )
31
- except requests.exceptions.RequestException as e:
32
- print(f"Error: {e}")
33
- return
34
- print(f"{workflow['name']} - uploaded")
35
- print("Workflow transfer completed.")
36
-
37
-
38
-
39
-
40
- if __name__ == "__main__":
41
- main()
@@ -1,66 +0,0 @@
1
- import os
2
-
3
- import requests
4
- import json
5
-
6
- from utils import select_option, get_api_key, create_headers
7
-
8
-
9
- def main():
10
- print("n8n Workflow Uploader")
11
- instance_url = input("Enter n8n instance URL (e.g., https://n8n.example.com): ").strip().rstrip("/")
12
- api_key = input("Enter your n8n API key: ").strip() or get_api_key("api_key_upload.txt")
13
- options = os.listdir("./workflows")
14
- selected = select_option(options)
15
- print(f"Selected: {selected}")
16
-
17
- workflows_endpoint = f"{instance_url}/api/v1/workflows"
18
- folder_path = f"./workflows/{selected}"
19
-
20
- upload_workflows(url=workflows_endpoint, api_key=api_key, folder_path=folder_path)
21
-
22
-
23
- def upload_workflows(url, api_key, folder_path):
24
- for f in os.listdir(folder_path):
25
- with open(os.path.join(folder_path, f), "r") as file:
26
- workflow = json.load(file)
27
- clean_workflow(workflow)
28
-
29
- try:
30
- post_workflow(
31
- url=url,
32
- headers=create_headers(api_key),
33
- body=workflow
34
- )
35
- except requests.exceptions.RequestException as e:
36
- print(f"Error: {e}")
37
- return
38
- print(f"{f} - uploaded")
39
-
40
-
41
- def post_workflow(url, headers, body):
42
- response = requests.post(url=url, headers=headers, json=body)
43
- response.raise_for_status()
44
-
45
-
46
- def clean_workflow(workflow):
47
- top_keys = {"id", "createdAt", "updatedAt", "active", "isArchived", "meta", "pinData", "versionId", "triggerCount", "tags"}
48
- shared_keys = {"createdAt", "updatedAt"}
49
- project_keys = {"id", "type"}
50
-
51
- for key in top_keys:
52
- workflow.pop(key, None)
53
- for item in workflow.get("nodes", []):
54
- item.pop("credentials", None)
55
- for item in workflow.get("shared", []):
56
- for key in shared_keys:
57
- item.pop(key, None)
58
- if "project" in item:
59
- for key in project_keys:
60
- item["project"].pop(key, None)
61
-
62
- return workflow
63
-
64
-
65
- if __name__ == "__main__":
66
- main()
@@ -1,42 +0,0 @@
1
- import curses
2
-
3
-
4
- def _menu(stdscr, options):
5
- curses.curs_set(0)
6
- current_row = 0
7
-
8
- while True:
9
- stdscr.clear()
10
- for idx, option in enumerate(options):
11
- if idx == current_row:
12
- stdscr.addstr(idx, 0, option, curses.A_REVERSE)
13
- else:
14
- stdscr.addstr(idx, 0, option)
15
- key = stdscr.getch()
16
-
17
- if key == curses.KEY_UP and current_row > 0:
18
- current_row -= 1
19
- elif key == curses.KEY_DOWN and current_row < len(options) - 1:
20
- current_row += 1
21
- elif key == curses.KEY_ENTER or key in [10, 13]:
22
- return options[current_row]
23
-
24
- def select_option(options):
25
- return curses.wrapper(_menu, options)
26
-
27
-
28
- def create_headers(api_key):
29
- return {
30
- "X-N8N-API-KEY": api_key,
31
- "Accept": "application/json"
32
- }
33
-
34
-
35
- def get_api_key(file_name):
36
- try:
37
- with open(file_name, "r") as file:
38
- api_key = file.read().strip()
39
- except FileNotFoundError:
40
- api_key = ""
41
-
42
- return api_key